![]() |
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线程。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |