线程通讯(SynchronizationContext )
来源:互联网 发布:经济最优化 编辑:程序博客网 时间:2024/06/05 11:34
今天看公司其它同事写的代码中用到了SynchronizationContext,看完注释也没明白是什么东东(本人是个入门者,需要充电的地方太多了),所以特别在网上查了下,原来是这么个东西:一个线程和另外一个线程进行通讯时,SynchronizationContext在通讯中充当了个传输者的角色。
先借用下先辈们的例子:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// let's check the context here
var context = SynchronizationContext.Current;
if (context == null)
Console.WriteLine("No context for this thread");
else
Console.WriteLine("We got a context");
// create a form
Form1 form = new Form1();
// let's check it again after creating a form
context = SynchronizationContext.Current;
if (context == null)
Console.WriteLine("No context for this thread");
else
Console.WriteLine("We got a context");
if (context == null)
Console.WriteLine("No context for this thread");
Application.Run(new Form1());
}
运行结果:
1、No context for this thread
2、We got a context
从运行结果来看,在Form1 form = new Form1()之前,SynchronizationContext对象是为空,而当实例化Form1窗体后,SynchronizationContext对象就被附加到这个线程上了。所以可以得出答案了:当Control对象被创建的同时,SynchronizationContext对象也会被创建并附加到线程上。
如何使用SynchronizationContext ?
相关链接:
http://www.cnblogs.com/Kevin-moon/archive/2009/01/13/1374353.html
http://blog.csdn.net/iloli/article/details/16859605
阅读全文
0 0
- 线程通讯(SynchronizationContext )
- 线程之间的通讯---SynchronizationContext
- 线程之间的通讯---SynchronizationContext
- 线程之间的通讯---SynchronizationContext
- 线程之间的通讯---SynchronizationContext
- 线程之间的通讯---SynchronizationContext
- 线程之间的通讯---SynchronizationContext Part II
- 线程之间的通讯---SynchronizationContext Part III
- 线程之间的通讯---SynchronizationContext [转]
- 线程之间的通讯- UI 通讯使用SynchronizationContext--(1)
- 线程之间的通讯- UI 通讯使用SynchronizationContext--(2)
- SynchronizationContext
- C#线程UI更新,SynchronizationContext方法
- 后台线程使用 SynchronizationContext 更新主界面
- 深入线程,实现自定义的SynchronizationContext
- Winform线程通信(异步更新UI--SynchronizationContext
- android线程通讯(Handler)
- 利用SynchronizationContext解决界面要素的线程同步问题
- 欢迎使用CSDN-markdown编辑器
- android经典源码,仿美团外卖日历签到弹性指示器音乐播放器俄罗斯方块取色器飘落效果悬浮效果源码
- Intellij IDEA 创建Web项目并在Tomcat中部署运行
- 将字符串的首位换成大写其余小写。
- linux top VIRT RES SHR SWAP DATA内存参数详解
- 线程通讯(SynchronizationContext )
- ORA_HASH函数
- caffe实例-LeNet简介与mnist
- Green学习
- Java数据结构之数组
- caffe和tensorflow中padding区别
- 属性动画的平移加旋转
- 查找——两个有序序列的中位数
- 对java中bean的理解