在查看控制台时,这两个代码块是否具有相同的效果?
请注意:目前我仍在使用并绑定到 .NET 3.5。
第一的:
for(int i = 0; i<3;i++)
{
Console.WriteLine(i);
}
第二:
class Worker
{
static int i = 0;
static ManualResetEvent manualResetEvent = new ManualResetEvent(false);
static Object locky = new Object();
static void Work(Object workItem)
{
WaitHandle[] wait = new [] { manualResetEvent };
while (WaitHandle.WaitAny(wait))
{
lock (locky)
{
Console.WriteLine(i++);
}
}
}
}
// main:
Thread thread = new Thread(Worker.Work);
thread.Start();
for (int i=0;i<3;i++)
{
Worker.manualResetEvent.Set();
}
waitHandle 会随着每个信号而增加吗?循环会一直运行到所有信号都完成吗?或者当线程已经在工作时会忽略信号吗?
有人可以为此带来一些启示吗?