C#中创建线程的方式,以及主线程和子线程之间的资源调用
2016-12-29 14:07
453 查看
C#中创建线程的方式,以及主线程和子线程之间的资源调用:
共享的资源:
a) 堆:new 出来的都是共享的(new 一个实例,实例中的函数、变量都是共享的)
b) 全局变量
c) 静态变量
d) 文件等公用资源,使用这些公用资源的线程必须同步(信号、临界区、事件、互斥体)
独享的资源:
a) 栈
b) 寄存器
静态函数不能访问非静态函数
方式一:
方式二:
共享的资源:
a) 堆:new 出来的都是共享的(new 一个实例,实例中的函数、变量都是共享的)
b) 全局变量
c) 静态变量
d) 文件等公用资源,使用这些公用资源的线程必须同步(信号、临界区、事件、互斥体)
独享的资源:
a) 栈
b) 寄存器
静态函数不能访问非静态函数
方式一:
new System.Threading.Thread(() => { HeartTick(); }).Start(); //HearTick()中实现功能
方式二:
new System.Threading.Thread(() => { while(true) { CanMessageQueueItem tempCanMessageQueueItem = CanMessageQueue.DeQueue();//有新消息需要发送时,清除该消息之前的心跳包 if (this.IsHeartTick) { if (tempCanMessageQueueItem.data.Length == 8 && tempCanMessageQueueItem.data.All(p => p == 0x00) && tempCanMessageQueueItem.ID == 0x7ff && tempCanMessageQueueItem.Len == 1) continue; else this.IsHeartTick = false; } CanSendData(tempCanMessageQueueItem.ID, tempCanMessageQueueItem.Len, tempCanMessageQueueItem.data); } }).Start();
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#使用第三方组件生成二维码汇总
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#网络适配器简单操作
- C#实现导出List数据到xml文件的方法【附demo源码下载】
- C#异步绑定数据实现方法