C#多线程,暂停线程(ManualResetEvent)
2010-08-01 11:18
501 查看
只有代码:
代码
代码
class Program { public static ManualResetEvent mre = new ManualResetEvent(false); static void Main(string[] args) { Thread threadA = new Thread(new ThreadStart(OtherThreadA)); threadA.Name = "threadA"; threadA.Start(); Thread threadB = new Thread(new ThreadStart(OtherThreadB)); threadB.Start(); Thread currentThread = Thread.CurrentThread; Console.WriteLine(currentThread.Name); for (int x = 0; x < 10; x++) { Thread.Sleep(900); Console.WriteLine("Main :" + x); if (5 == x) { mre.Set(); } } while (threadA.IsAlive) { Thread.Sleep(1000); Console.WriteLine("Main: waiting for thread to stop..."); } } static void OtherThreadA() { Thread currentThread = Thread.CurrentThread; Console.WriteLine("threadA: waiting for an event"); mre.WaitOne(); Console.WriteLine("threadA: got an event"); for (int i = 0; i < 10; i++) { Thread.Sleep(1000); Console.WriteLine("ThreadA: "+i.ToString()); } } static void OtherThreadB() { Thread currentThread = Thread.CurrentThread; Console.WriteLine("threadB: waiting for an event"); mre.WaitOne(); Console.WriteLine("threadB: got an event"); for (int i = 0; i < 10; i++) { Thread.Sleep(1000); Console.WriteLine("ThreadB: " + i.ToString()); } } }
相关文章推荐
- C# 多线程的等待所有线程结束 用 ManualResetEvent 控制
- C#多线程的用法7-线程间的协作ManualResetEvent
- 理解多线程中的ManualResetEvent(C#)
- C#的ManualResetEvent在多线程中的用法
- C#线程控制ManualResetEvent和AutoResetEvent
- C#笔记20:多线程之线程同步中的信号量AutoResetEvent和ManualResetEvent
- C# 使用 AutoResetEvent 或 ManualResetEvent 同步两个线程
- 多线程---使用ManualResetEvent来控制线程间的同步(实现了消费者和生产者模式)
- 理解多线程中的ManualResetEvent(C#)
- 用C#语言写的多线程演示程序:两个线程,可以开始,可以暂停,可以恢复,可以清除。-
- C#中的线程与同步 ManualResetEvent用法
- 利用ManualResetEvent来来控制异步调用的打印的线程的暂停和恢复(转)
- 多线程---使用ManualResetEvent来控制线程间的同步(实现了消费者和生产者模式)
- [多线程] ManualResetEvent(线程之间通讯 通知或者查看是否完成)
- [置顶] C# 线程的挂起与唤醒 (AutoResetEvent,ManualResetEvent)
- C#中的线程(三)多线程
- 黄聪:C#“多线程线程间操作无效: 从不是创建控件的线程访问它。”,跨线程修改控件属性解决方案
- C#中工作线程和多线程跨线程操作控件
- C#中的线程(三)多线程
- C#老生常谈之AutoResetEvent和ManualResetEvent