委托上的BeginInvoke和EndInvoke都生成完整的篱笆

本文关键字:EndInvoke BeginInvoke | 更新日期: 2023-09-27 18:03:06

c#中的线程,由Joseph Albahari简要介绍,他说:

下面隐式地生成全围栏:

    c#的锁语句(Monitor.Enter/Monitor.Exit)
  • Interlocked类上的所有方法(我们将很快讨论这些)
  • 使用线程池的异步回调函数包括异步委托、APM回调和任务延续
  • 设置和等待信令构造
  • 任何依赖于信号的操作,例如启动或等待任务

由于"异步委托"在列表中,我假设至少EndInvoke是完全隔离的。那么BeginInvoke呢?不幸的是,我不能F11(=调试步骤)进入BeginInvoke代码-源代码是可用的地方吗?不过如果能有一个明确答案的链接就更好了

委托上的BeginInvoke和EndInvoke都生成完整的篱笆

MSDN说BeginInvoke是线程安全的:http://msdn.microsoft.com/en-us/library/0b1bf3y3.aspx

控件上有四种方法是线程安全的:方法的句柄是BeginInvoke, EndInvoke和CreateGraphics控件已经创建

整个框架的源代码可从Microsoft的参考源网站获得