公司还用这些老家伙没办法,用了几次这俩。每次用都要重新翻一下A片。好好的A片楞是翻译成了禅经。把这东西弄成个玄学。微软也是吃枣药丸。参考了@风中灵药的blog.写的牛逼。还有一些公司用到的风中灵药没有提及,我给自己留个tip.好以后看看。有错误希望大家指出。虽然我不一定改。 ...
公司还用这些老家伙没办法,用了几次这俩。每次用都要重新翻一下A片。
好好的A片楞是翻译成了禅经。把这东西弄成个玄学。微软也是吃枣药丸。参考了@风中灵药的blog.写的牛逼。
还有一些公司用到的风中灵药没有提及,我给自己留个tip.好以后看看。有错误希望大家指出。虽然我不一定改。
AutoResetEvent 、ManualResetEvent 两个用法都差不多。
无非是ManualResetEvent 可以通知到多个get='_blank'>线程,然后开启后默认不关闭。需要手动关闭。
AutoResetEvent a1 = new AutoResetEvent(false);
ManualResetEvent m1 = new ManualResetEvent(false);
如果初始为true,就跟没有这两个东西一样,起不到阻塞当前线程,等待通知的继续运行的效果。所以用的时候都是初始化成false.
所以初始化为true有毛用。那当初为啥这样设计。翻了下金刚经更不懂了。等有缘人解答、
WaitOne();
这个如果初始化的AutoResetEvent 为false.如果没有set(),他会一直阻塞,也就是说就成死锁了。
--vs2012 win10 .net4.6.1
WaitOne(int); WaitOne(int,bool); WaitOne(timespan,bool);
这三个一样。int单位为毫秒,timespan就是时间间隔。
(1)这个如果初始化的AutoResetEvent 为false.如果在设置时间内返回,跟普通的wait()效果一样,阻塞然后运行;
static AutoResetEvent a1 = new AutoResetEvent(false); static void Main(string[] args) { Thread th = new Thread(new ThreadStart(method)); th.Start(); Console.WriteLine("start.."+DateTime.Now.ToString("mm:ss fff")); bool isback = a1.WaitOne(2000);//设定时间 Console.WriteLine("end .." + DateTime.Now.ToString("mm:ss fff")); Console.Read(); } //do something static void method() { Thread.Sleep(1000);//阻塞一秒在设置时间内返回 Console.WriteLine("Async.." + DateTime.Now.ToString("mm:ss fff")); a1.Set(); }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:AutoResetEvent ManualResetEvent 留着以后看
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。