各位大侠请看这两段代码:
(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关系不大?
谢谢!
(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关系不大?
谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货