当指示手动重置事件时,等待该事件的所有线程都可调度.当自动重置事件被发出信号时,只有一个等待事件的线程成为可调度的。
我在这里有一些很难回答的问题,因为我对线程并不熟悉。
发布于 2010-07-28 16:00:19
基本上," WaitHandle“(包括手动重置事件和自动重置事件)是允许线程等待某些事情发生的类型--在这种情况下,直到WaitHandle被”设置“。
线程(线程A)可以在WaitHandle上“等待”,阻塞直到单独的线程(线程B)“设置”(==“信号”) WaitHandle。这将允许线程A在这一点上继续进行。
如果有多个线程在等待WaitHandle,则会发生主要差异。在这种情况下,使用手动重置事件,所有线程都将被允许继续运行(即:它们现在是可调度的,这意味着操作系统将在某个时候设置它们并再次运行它们,通常速度相当快)。对于自动重置事件,允许一个线程继续,而WaitHandle被“重置”,这将阻止其他线程继续(直到下一个线程被“释放”时,WaitHandle再次被发出信号)。
发布于 2010-07-28 16:06:29
Wait()函数。线程将“等待”,直到事件被设置/发出信号/打开,然后再继续它所做的任何工作。https://stackoverflow.com/questions/3354766
复制相似问题