你的位置:首页 > 软件开发 > ASP.net > AutoResetEvent ManualResetEvent 留着以后看

AutoResetEvent ManualResetEvent 留着以后看

发布时间:2016-12-01 22:00:05
公司还用这些老家伙没办法,用了几次这俩。每次用都要重新翻一下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();    }AutoResetEvent ManualResetEvent 留着以后看

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:AutoResetEvent ManualResetEvent 留着以后看

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录