有关ThreadPool.RegisterWaitForSingleObject()的问题
各位大侠请看这两段代码:
(1)
static void Main(string[] args)
{
RegWait oR = new RegWait();
AutoResetEvent arev = new AutoResetEvent(false);
ThreadPool.RegisterWaitForSingleObject(arev, new WaitOrTimerCallback(RegWait.workitem), null, 2000, false);
arev.Reset(); //这是重点
Console.Read();
}
(2)
static void Main(string[] args)
{
RegWait oR = new RegWait();
AutoResetEvent arev = new AutoResetEvent(false);
ThreadPool.RegisterWaitForSingleObject(arev, new WaitOrTimerCallback(RegWait.workitem), null, 2000, false);
//arev.Reset(); //把这句注销后,执行的结果仍于(1)相同
Console.Read();
}
为代码的完整性,
这是
class RegWait
{
private static int i = 0;
public static void workitem(object o, bool signaled)
{
i += 1;
Console.WriteLine("The Thread pool is invoked " + i.ToString());
}
}
的代码。
问题:
是否该RegisterWaitForSingleObject()函数只要超时的时间到,就会自动执行,而与arev关系不大?
谢谢!
问题点数:20、回复次数:1Top
1 楼LifeAndC(蓝色忧郁)回复于 2006-06-04 11:04:25 得分 20
我只知道在Win32下,WaitForSingleObject()这是等待一个线程的做法,当线程被激活时,怎么怎么的,都不记得的了....Top




