小编给大家分享一下c#中ManualResetEvent如何使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
具体内容如下
<强> 1。源码下载:强>
演示:
使用系统; 使用System.Collections.Generic; 使用来; 使用text; 使用System.Threading; 名称空间ManualResetEventDemo { 类MREDemo { 私人ManualResetEvent _mre; 公共MREDemo () { 这一点。_mre=new ManualResetEvent(真正的); } 公共空间createthread () { 线程t1=新线程(新ThreadStart(运行)); t1.Start (); 线程t2=新线程(新ThreadStart(运行)); t2.Start (); } 公共空集() { this._mre.Set (); } 公共空间重置() { this._mre.Reset (); } 私人空间Run () { 字符串strThreadID=string.Empty; 试一试 { 而(真) {//阻塞当前线程 this._mre.WaitOne (); strThreadID=Thread.CurrentThread.ManagedThreadId.ToString (); Console.WriteLine(“线程(“;+ strThreadID +“)运行…“); thread . sleep (5000); } } 捕获(异常交货) { Console.WriteLine(“线程(“;+ strThreadID +“)发生异常!错误描述:“+ ex.Message.ToString ()); } } } }
使用系统; 使用System.Collections.Generic; 使用来; 使用text; 名称空间ManualResetEventDemo { 类项目 { 静态void Main (string [] args) { Console.WriteLine (“* * * * * * * * * * * * * * * * * * * * * * * * * * * *“); Console.WriteLine(“输入\“停止\“停止线程运行…“); Console.WriteLine(“输入\“运行\“开启线程运行…“); Console.WriteLine (“* * * * * * * * * * * * * * * * * * * * * * * * * * * * \ r \ n"); MREDemo objMRE=new MREDemo (); objMRE.CreateThreads (); 而(真) { 字符串输入=Console.ReadLine (); 如果(input.Trim () .ToLower ()==皊top") { Console.WriteLine(“线程已停止运行…“); objMRE.Reset (); } else if (input.Trim () .ToLower ()==皉un") { Console.WriteLine(“线程开启运行…“); objMRE.Set (); } } } } }
以上是c#中ManualResetEvent如何使用的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!