自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (2)
  • 收藏
  • 关注

原创 C#实现的一个简单的软件保护方案

生成加密密钥、加密和解密数据、生成许可证和验证许可证的功能。

2025-03-19 10:46:23 591 1

原创 Ubuntu 上可以安装ms sqlserver?(不能上网2)

如果您有一台可以上网的 Windows 电脑,您可以利用它来下载所需的 SQL Server 安装包和依赖包,然后将这些包传输到无法上网的 Ubuntu 服务器上进行离线安装。

2025-02-05 14:55:06 802

原创 Ubuntu 上可以安装ms sqlserver?(不能上网)

如果您的 Ubuntu 服务器不能上网,您将无法直接从互联网下载和安装软件包。不过,您仍然可以通过离线方式安装 Microsoft SQL Server。以下是详细的步骤,介绍如何在没有互联网连接的情况下安装 SQL Server。

2025-02-05 14:52:46 470

原创 Ubuntu 上可以安装ms sqlserver?

是的,Microsoft SQL Server 可以安装在 Ubuntu 上。自 SQL Server 2017 版本起,Microsoft 提供了对 Linux 的支持,包括 Ubuntu。以下是详细的步骤,介绍如何在 Ubuntu 上安装 SQL Server。

2025-02-05 14:49:22 538

原创 .net framework 4.5 的项目,用Mono 部署在linux

Mono

2025-02-05 14:46:41 1144

原创 gitignore忽略已经提交过的

已经在.gitignore文件中添加了过滤规则来忽略bin和obj等文件夹,但这些文件夹仍然出现在提交中,可能是因为这些文件夹在添加.gitignore规则之前已经被提交到Git仓库中了。要解决这个问题,您需要从Git的索引中移除这些文件夹,并确保它们被正确忽略。

2025-01-17 10:38:25 497

原创 sqlserver 脚本 处理数据库

如果你想要列出备份文件中的逻辑文件名,‌你可以使用。sqlserver 删除数据库。

2024-08-23 16:52:52 212 1

原创 Monitor Mutex Semaphore

【代码】Monitor Mutex Semaphore。

2024-01-17 14:32:52 420

原创 线程同步 事件机制 ManualResetEvent

这个示例演示了ManualResetEvent的Set和Reset方法在线程间通信的示例用法。Set发送信号,Reset复位信号,实现生产者-消费者模式中的生产-消费-复位信号循环。,相当于发出信号时复位信号。Reset方法将事件设置为。信号状态,相当于发出信号。Set方法将事件设置为。

2024-01-17 14:15:07 480

原创 c#简单事件

【代码】c#简单事件。

2024-01-16 16:26:40 128

原创 vs2022打包framewrok的类库

对老版本,只能下载Nuget.exe,设置系统环境变量。然后执行nuget pack命令(vs里执行不了)。vs2022,对.core直接右击编译/打包。

2023-12-29 17:07:32 447

原创 sokit推荐一个好用小工具

可以看到对面发过来的数据,长度为10 的byte[],定义了5个长度为16位的数据,故每个数据占2。比如第一个01AB,16进制转换为十进制是427。第二个0001就是1。115是remoteIP。

2023-06-21 10:22:09 578

原创 Task 取消

然后使用CancellationToken启动一个Task,在任务中使用CancellationToken判断任务是否被取消。当需要停止或取消任务时,调用CancellationTokenSource的Cancel方法,通知任务停止。最后,使用Task的Wait方法等待任务完成。如果任务抛出了异常,可以在Wait方法中捕获并处理它。需要注意的是,任务在接收到取消请求时,应该清理所有的资源并尽快退出,以便释放系统资源并避免产生不必要的开销。,这是为了在任务取消时抛出异常,以便在任务的等待方法中捕获并处理它。

2023-06-06 09:43:58 842

原创 通讯接口STM32

USART通讯的优点是简单易用,适合短距离通讯和低速通讯。CAN通讯通常使用双绞线进行通讯,支持多个节点连接在同一总线上,可以使用多种数据帧格式进行通讯。CAN通讯的优点是支持多节点通讯和高可靠性,适合工业自动化和汽车电子等领域应用。I2C通讯的优点是支持多设备连接和低功耗,适合短距离通讯和低速通讯。以太网通讯:以太网是一种基于局域网的通讯协议,可以实现高速数据传输和远程控制。需要根据具体的应用需求和硬件平台选择相应的通讯接口,并合理设计和实现通讯协议和驱动程序。

2023-04-27 11:06:09 741

原创 51job不让批量勾选

51job不让批量投了!2023年 4月,工作多难找呢?

2023-04-20 11:07:35 555 1

原创 sql 优化

3. 优化查询条件。查询条件的优化可以通过使用“=”而不是“<>”来避免全表扫描,使用IN而不是OR来提高查询性能等方式实现。综上所述,SQL优化是一种提高数据库性能的重要技术,需要根据具体的查询需求和数据库结构来制定具体的优化策略。SQL优化是一种改善SQL查询性能的技术,可以提高数据库的响应速度和吞吐量。定期维护数据库可以清理无用的数据、重建索引、优化表结构等,提高数据库的性能。在优化SQL查询之前,需要明确查询的目标和需求,以便更好地进行优化。子查询会增加查询的复杂度和计算量,应该尽量避免使用。

2023-04-12 11:20:57 201

原创 Task 和异步方法进行通信 demo

在上面的示例代码中,我们创建了两个 Task,task1 和 task2。task1 执行一个异步方法 `DoSomethingAsync()`,该方法模拟了一些耗时的操作,并返回一个 int 类型的结果。接着,我们使用 `Task.Delay()` 方法来模拟一段时间的过去,并使用 CancellationTokenSource 来取消 task1。这个示例演示了如何使用 Task 和异步方法进行通信,并在其中使用 CancellationTokenSource 来取消任务。

2023-04-12 11:20:12 100

原创 Task 和异步方法来实现多个任务之间的通信

在上面的示例代码中,我们创建了两个 Task,task1 和 task2。task1 执行一个异步方法 `DoSomethingAsync()`,该方法模拟了一些耗时的操作,并返回一个 int 类型的结果。接着,我们使用 `Task.Delay()` 方法来模拟一段时间的过去,并使用 CancellationTokenSource 来取消 task1。这个示例演示了如何使用 Task 和异步方法进行通信,并在其中使用 CancellationTokenSource 来取消任务。

2023-04-12 11:03:29 568

原创 c#多线程

需要注意的是,使用 Task.Run() 和 Task.Factory.StartNew() 方法时,会使用线程池中的线程来执行任务,而不是创建新的线程,这可以避免不必要的线程创建和销毁,提高程序的性能。在使用 Thread 类时,需要注意线程安全和资源竞争等问题,以保证程序的正确性和性能。2. Task.Factory.StartNew():创建并启动一个 Task 对象来执行一个操作,该方法可以接受一个 Func 委托或 Action 委托,用于执行任务的操作,并可以指定任务的创建选项和调度器。

2023-04-12 00:00:58 541

原创 C# 多线程程序,计算斐波那契数列

该程序创建了一个新的线程来计算斐波那契数列,主线程则输出一条提示信息,并等待新线程执行完毕。在 Fibonacci 方法中,使用了一个数组来保存数列的前 20 项,并输出到控制台上。通过这个例子,可以初步了解 C# 中多线程编程的基本概念和语法。

2023-04-11 23:52:33 428

原创 线程间通信

当一个线程请求访问共享资源时,它会获取信号量,如果信号量的计数器为 0,则线程会被阻塞,直到有其他线程释放信号量。当一个线程请求访问共享资源时,它会获取锁,其他线程则会被阻塞,直到锁被释放。当一个线程请求访问共享资源时,它会获取互斥体,其他线程则会被阻塞,直到互斥体被释放。和锁机制类似,互斥体也适用于临界区的保护和资源的同步访问。3. 事件(Event):事件是一种同步机制,用于线程间的通知和等待。在多线程编程中,线程间通信是一种非常重要的技术,它允许不同的线程之间进行数据交换、同步和协调。

2023-04-11 23:46:37 966

原创 多线程方法和相关类

线程池是一种重复使用线程的机制,它可以降低线程创建和销毁的开销,提高应用程序的性能。可以使用 Task 类的静态方法 Run 来创建并启动一个异步任务,任务会在后台线程中执行,并返回一个表示任务结果的 Task 对象。可以使用 Parallel 类的静态方法 For 和 ForEach 来并行地执行循环和迭代操作,该类会自动将任务分配到多个线程上执行,以提高程序的性能。除了上述方法,C# 还提供了一些其他的多线程编程技术,例如锁机制、信号量、事件等,这些技术可以用于线程间的同步、协作和通信。

2023-04-11 23:46:24 174

原创 Modbus

然后,根据需要选择 Modbus RTU 或 Modbus TCP 的通信方式,分别实例化 SerialPortAdapter 或 TcpClientAdapter,并将其传递给 ModbusFactory 类的 CreateMaster() 方法创建 Modbus 主站对象。最后关闭连接,释放资源。需要注意的是,在使用 Modbus 协议进行通信时,需要事先了解设备的寄存器地址、数据类型、读写权限等信息,以便正确地使用 Modbus 主站对象的方法进行读写操作。

2023-04-11 23:42:33 597

原创 Modbus RTU 和 Modbus TCP

它的数据帧包括从地址、功能码、数据、CRC 校验等多个部分,其中从地址表示通信的设备地址,功能码表示通信的操作类型,数据表示读写的数据内容,CRC 校验用于检测数据传输的正确性。需要注意的是,Modbus RTU 和 Modbus TCP 协议虽然有一些不同之处,但其通信原理和数据格式基本相同,因此可以通过相应的库和工具对其进行通信和调试,例如使用 Modbus 主站和从站的模拟器、抓包工具等。Modbus 是一种通信协议,用于在工业自动化系统中传输数据。

2023-04-11 23:41:49 1407

原创 rs485

RS485 串口通信需要设置一些特殊的参数,如波特率、奇偶校验位、数据位、停止位、RTS 控制信号等,以确保数据的正确传输。在上面的代码中,除了设置常规的串口参数外,还设置了 RTS 控制信号,以使 RS485 串口处于发送模式。在接收数据时,可以使用 ReadExisting() 方法从串口读取数据。需要注意的是,在使用 RS485 串口通信时,还需要考虑到发送和接收数据的时序问题,以及数据的校验和错误处理等问题。此外,还可以通过事件来处理串口的接收和发送操作,提高程序的性能和稳定性。

2023-04-11 23:40:51 1346

原创 rs232

在上面的代码中,首先创建了一个 SerialPort 实例,指定串口号、波特率、奇偶校验位、数据位和停止位等参数。然后打开串口,使用 Write() 方法向串口发送数据,使用 ReadExisting() 方法从串口读取数据。最后关闭串口,释放资源。需要注意的是,在使用 SerialPort 类进行串口通信时,需要先检查串口是否可用,避免出现串口被占用或不存在的情况。此外,还可以通过事件来处理串口的接收和发送操作,提高程序的性能和稳定性。

2023-04-11 23:37:46 1421

原创 JVM调优

GC也是影响程序性能的因素之一。JVM的GC分为两种:年轻代GC和全局GC。全局GC发生较少,但会占用较长时间。当内存不足时,会触发GC,在此过程中,CPU被占用,影响程序性能。总之,JVM调优需要结合具体的应用场景来进行,需要对应用程序的运行情况进行观察和分析,找出瓶颈所在,采取相应的优化策略。JVM的线程管理过程中,每个线程都需要占用一部分内存,当线程过多时,会影响系统的性能。JVM程序不仅要占用内存,还要使用其他资源,比如CPU、磁盘、网络等。如果资源使用不合理,也会影响程序性能。

2023-03-22 12:52:14 293 1

原创 SetWindowPos

托管调试助手 "PInvokeStackImbalance":的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管参考官方:https://www.pinvoke.net/default.aspx/user32/SetWindowPos.htmlpinvoke.net:SetWindowPos (user32)...

2022-01-26 18:33:41 328

转载 WinForm窗体之间交互的一些方法

https://jingyan.baidu.com/article/851fbc37f4ba793e1f15ab83.html也可以通过窗体传值 MenuConfigForm dialog = new MenuConfigForm(); dialog.TitleChanged = new MenuConfigForm.TitleChangedHandler(FormTitleChanged); //dialog.Show

2022-01-21 18:42:48 238

原创 arduino点亮led灯

int LED_BUILTIN =13;// the setup function runs once when you press reset or power the boardvoid setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT);}// the loop function runs over and over again forevervoid.

2021-06-27 11:58:51 620

原创 esp32连wifi

#include<WiFi.h>const char* id="CMCC-Ty57"; //定义两个字符串指针常量const char* psw="8xn625pj";void setup() { Serial.begin(115200); WiFi.begin(id,psw); while(WiFi.status()!=WL_CONNECTED){ //未连接上 delay(500); Serial.println("正在连接..."); .

2021-06-27 11:35:35 686

原创 也ESP32--Arduino--使用oled

esp32,这个板子没焊接。借了同事电烙铁自己弄的。每次烧录都得按boot,使用按EN。真是够麻烦,图便宜。--------------------------并不华丽 的分割线---------------------------------------------------#include <Wire.h>#include "SSD1306.h"SSD1306 display(0x3c, 4, 15);void setup() { display.init(..

2021-06-24 23:42:26 1254

原创 记一次高项考试

6262上海市业余科技学院,被分配到徐汇一个很偏的地方。周边没什么吃的。附近有个图书馆,却说是书库,不让进。只能在路边挨过中午。题目不难,案例计算题,对间接成本理解错了。导致17fen...

2021-05-31 09:40:44 104

原创 sqlserver 使用脚本之 批量处理字段

SELECT 'ALTER TABLE ['+TABLE_NAME+'] ALTER COLUMN ['+COLUMN_NAME+'] ' + DATA_TYPE + CASE WHEN DATA_TYPE IN('TEXT','NTEXT') THEN '' ELSE QUOTENAME(CHARACTER_MAXIMUM_LENGTH,'(') END + ' COLLATE Ch...

2021-03-12 14:38:10 181

原创 ServletContextListener tomcat起不来了

Caused by: java.lang.IllegalStateException: StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[] failed to start at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.rethrowDeferredStartupExceptions(TomcatWebServer.java:187) .

2020-12-03 16:31:04 571

原创 链表——猫吃掉奇数的老鼠

//一只猫抓了N(N>1)只老鼠 他给所有的老鼠按自然数顺序编了号 每次他让老鼠按号码升序排队并报数 //然后吃掉奇数的老鼠 直到只剩下一只老鼠 求该老鼠的编号 要求用链表完成 环境VC6.0或TC2.0都可以int lastMouse(LinkList head) { ListNode* p, * q; while (head->next->next)//保留最后一个 { p = q = head; do { q = p; p = p->nex..

2020-10-30 17:38:41 363

原创 栈的链式存储

#include<stdio.h>#include<stdlib.h>#define Max 100//栈的链式存储typedef char DataType;typedef struct structnode { DataType data; struct structnode* next;} StackNode;typedef StackNode* LinkStack;//LinkStack top;int stackEmpty(LinkStack.

2020-10-30 15:45:10 92

原创 栈的应用

#include<stdio.h>#include<stdlib.h>#define StackSize 100//栈的顺序存储typedef int DataType;typedef struct { DataType data[StackSize]; int top;//栈顶}SeqStack;SeqStack s;void InitStack(SeqStack* s) { s->top = -1;}int stackEmpty(S...

2020-10-30 15:44:06 90

原创 生成二叉树

#include<stdio.h>#include<stdlib.h>typedef char DataType; typedef struct node { DataType data; struct node* lchild, * rchild;}BinTNode;//生成二叉树BinTNode* CreateTree(char* str) { BinTNode* st[100];//指针数组模拟栈 BinTNode* p = NULL; int top,.

2020-10-30 15:42:27 182

原创 找顺序表里的最大最小

#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;typedef int DataType;#define ListSize 100 //顺序表typedef struct { DataType data[ListSize]; int length;}SeqList;//初始一个 SeqList InitList(SeqList* L, DataT.

2020-10-30 15:41:07 429

领域设计代码

领域设计代码 code2 如觉得好请联系我下全部

2015-09-14

c#查询扩展

DevTrends.QueryableExtensionsExample linq查询where and or等

2015-09-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除