1.task(委托)
Task t = new Task(() =>
{
//do something
while (true)
{
}
});
t.ContinueWith((task) =>
{
try
{
task.Wait();
}
catch (AggregateException ex)
{
foreach (Exception item in ex.InnerExceptions)
{
}
}
},TaskContinuationOptions.OnlyOnFaulted);
t.Start();
2.Thread (可不加阻滞状态)
//WaitHandle(EventWaitHandle:AutoResetEvent,ManualResetEvent;Semaphore;Mutex)
//给出阻滞状态。给出信号后自己回到阻滞
private AutoResetEvent autoResetEvent = new AutoResetEvent(false);
public void Test1()
{
Thread TH = new Thread(()=> {
//DO SOMETHING
bool re=autoResetEvent.WaitOne();
//CONTINUE DOING
});
}
public void Test2()
{
//给等待的线程一个信号
autoResetEvent.Set();
}
#endregion