SynchronizationContext 类是一个基类,可提供不带同步的自由线程上下文。 此类实现的同步模型的目的是使公共语言运行库内部的异步/同步操作能够针对不同的异步模型采取正确的行为。此模型还简化了托管应用程序为在不同的同步环境下正常工作而必须遵循的一些要求。同步模型的提供程序可以扩展此类并为这些方法提供自己的实现。
  简而言之就是允许一个线程和另外一个线程进行通讯,SynchronizationContext在通讯中充当传输者的角色。另外这里有个地方需要清楚的,不是每个线程都附加SynchronizationContext这个对象,只有UI线程是一直拥有的。

Current 获取当前同步上下文

var context = SynchronizationContext.Current;

Send 一个同步消息调度到一个同步上下文。

SendOrPostCallback callback = o =>
{
//TODO:
};
context.Send(callback,null);

send调用后会阻塞直到调用完成。

Post 将异步消息调度到一个同步上下文。

SendOrPostCallback callback = o =>
{
//TODO:
};
context.Post(callback,null);

和send的调用方法一样,不过Post会启动一个线程来调用,不会阻塞当前线程。

最新文章

  1. oracle学习笔记(二)
  2. Web Service 的创建简单编码、发布和部署
  3. BSBuDeJie_04
  4. [vijos1002][NOIP2005]过河
  5. Sublime Text 2 入门及技巧
  6. Android笔记:java 中的枚举
  7. ps通道混合器
  8. dictEntry **table;
  9. 005windows与Linux文件共享
  10. 《深入Java虚拟机学习笔记》- 第7章 类型的生命周期/对象在JVM中的生命周期
  11. Linux学习笔记27——共享内存
  12. 一、Linux启动过程详解
  13. 《Swift Programming Language 》——Swift中怎样使用继承(Inheritance)
  14. 解决Android Device Chooser 找不到设备问题
  15. [2014-08-17]Mac OSX 截图快捷键
  16. 《JavaScript高级程序设计(第3版)》阅读总结记录第二章之在HTML中使用JavaScript
  17. Redis过期策略
  18. LeetCode - 768. Max Chunks To Make Sorted II
  19. PHP和Redis实现在高并发下的抢购及秒杀功能示例详解
  20. C&Cpp.CallGraph

热门文章

  1. html5常用标签table表格布局
  2. 【a402】十进制数转换为八进制数
  3. TensorFlow 学习(十一)—— 正则(regularizer)
  4. 图片及js的预加载
  5. layer的使用笔记
  6. 为 Mac Finder 增加右键文件打包压缩(免费)
  7. Python 爬虫 —— scrapy
  8. Android 事件分发机制具体解释
  9. 《菊与刀》original 的阅读
  10. 构建自己的PHP框架(日志)