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