大佬教程收集整理的这篇文章主要介绍了c# – 多等待句柄,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
public void MethodA() { MyManualResetEvent.Reset(); } public void MethodB() { MyManualResetEvent.Set(); }
当使用MyManualResetEvent.WaitOne()来停止线程时,如果另一个线程调用了MethodA而不是MethodB,则此方法有效.
我现在要做的是能够两次调用MethodA,另一个线程只在MethodB被调用两次时才继续,而不是只调用一次.
我希望System.Threading命名空间中有一些我不知道的东西.
object mylock = new object(); int count = 0; public void MethodA() { // record that MethodA is executing lock (mylock) count++; // other code... } public void MethodB() { // other code... lock (mylock) { // MethodB has Now finished running count--; // wake up other thread because it may Now be allowed to run Monitor.Pulse(mylock); } } public void BlockedMethod() { // wait until the number of calls to A and B is equal (i.e.,count is 0) lock (mylock) { while (count != 0) Monitor.Wait(mylock); } // calls to A and B are balanced,proceed... }
以上是大佬教程为你收集整理的c# – 多等待句柄全部内容,希望文章能够帮你解决c# – 多等待句柄所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。