![]() |
1
1
在公共资源或代码块上执行线程同步的常见简单方法是使用互斥体(在本例中是关键部分)。使用lock语句: http://msdn.microsoft.com/en-us/library/c5kehkcz(VS.71).aspx 本文说要对“this”指针进行锁定,但这可能很危险,因为外部调用程序也可以获取相同的锁,这可能会破坏程序。锁定一个私有类变量。 下面是对示例代码的一些修改,以合并锁定/A关键部分:
编辑: (引自评论)。您提到过,您可能希望在单个线程上异步处理对executeCommand的所有调用。您可以使用Dispatcher类完成此任务: http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.aspx 在一个线程上获取对调度程序的引用。将该引用传递给其他线程。当这些线程想要调用ExecuteCommand时,它们使用Dispatcher.BeginInvoke。因为它们使用begininvoke,所以对executeCommand的所有调用都将异步操作,而不会阻塞该线程。但是,每个版本的executeCommand都将排队,并按顺序运行Dispatcher线程。 |
![]() |
J. Defenses · 节点JS,NeDB-如何使同步返回到父模块 7 年前 |
![]() |
StefanoN · Java多线程-按顺序只运行一次线程运行方法 7 年前 |
![]() |
merlin2011 · Android线程方法是否隐式同步? 7 年前 |
![]() |
ninbura · ffmpeg-时间码和分数帧速率(复制帧) 7 年前 |
![]() |
ninbura · 分段时音频缓慢去同步 7 年前 |