可以用委托,还可以把这个函数体定义为一个有返回值的 比如: public int A() { .... .... return 0; } 调用的时候如何这个A返回的是0 就执行你要做的事情被。用委托也可以。
static void Main(string[] args) { ManualResetEvent[] manualEvents = new ManualResetEvent[4]; for (int i = 0; i < 4; i++) { manualEvents[i] = new ManualResetEvent(false); System.Threading.ThreadPool.QueueUserWorkItem(new WaitCallback(Add), manualEvents[i]); } WaitHandle.WaitAll(manualEvents); Console.Write("All Thread Over"); Console.ReadLine(); } public static void Add(object stateinfo) { try { Console.WriteLine("I am over"); } catch { } finally { ManualResetEvent manualEvent = (ManualResetEvent)stateinfo; manualEvent.Set(); } } 执行结果:I am over I am over I am over I am over All Thread Over
比如:
public int A()
{
....
....
return 0;
}
调用的时候如何这个A返回的是0 就执行你要做的事情被。用委托也可以。
{
ManualResetEvent[] manualEvents = new ManualResetEvent[4];
for (int i = 0; i < 4; i++)
{
manualEvents[i] = new ManualResetEvent(false);
System.Threading.ThreadPool.QueueUserWorkItem(new WaitCallback(Add), manualEvents[i]);
}
WaitHandle.WaitAll(manualEvents);
Console.Write("All Thread Over");
Console.ReadLine();
}
public static void Add(object stateinfo)
{
try
{
Console.WriteLine("I am over");
}
catch
{
}
finally
{
ManualResetEvent manualEvent = (ManualResetEvent)stateinfo;
manualEvent.Set();
}
}
执行结果:I am over
I am over
I am over
I am over
All Thread Over