在这里,我增加了一个ManualResetEvent对象和ManualResetEvent的数组。 public ManualResetEvent m_mreB; 添加初始化代码: m_mreB = new ManualResetEvent(false); 启动四个线程: Thread t0 = new Thread(new ThreadStart(SafeWriteThread)); 在这里有两个StartThreads和两个WriteThreads,让我们看看他们的执行: public void SafeWriteThread() 我对第二个WriteThread使用了另外一个事件对象,为了模拟等待第一个线程完成工作。 public void SafeReadThread10B() 在这里,使用了一个WaitAll的方法,他是WaitHandle基类提供给ManualResetEvent的静态方法,它的参数为我们在前面定义的ManualResetEvent数组。他阻塞当前的线程直到参数数组里面所有的ManualResetEvent对象设置状态为signaled,换一句话说就是等待他们完成了各自的任务。 |
正在阅读:c#多线程教学(5):Case 学习多线程c#多线程教学(5):Case 学习多线程
2005-07-13 10:22
出处:
责任编辑:moningfeng
键盘也能翻页,试试“← →”键