异步操作如何同步?

来源:百度知道 编辑:UC知道 时间:2024/06/30 16:08:42
有个异步操作的线程,和操作完成的回调函数,这个异步操作线程会要多次执行这个异步操作,但是喜欢每次操作前都等待上次异步操作完成了在进行。也就是说需要在开启一个异步操作后,进入等待状态,然后在异步操作结束的回调函数里面让异步操作的线程继续执行。该怎么做呢?

不是十分确定楼主的需求, 看看一下代码有没有参考价值:
static AutoResetEvent autoEvent;
static void Main(string[] args)
{
autoEvent = new AutoResetEvent(true);
for (int i = 0; i < 10; i++)
{
ThreadPool.RegisterWaitForSingleObject(autoEvent, new WaitOrTimerCallback(RealWork), i, Timeout.Infinite, true);
}
Console.Read();
}

static void RealWork(object state, bool timeOut) //这个是你的异步操作
{
Console.WriteLine("Thread:{0}-{1}", Thread.CurrentThread.ManagedThreadId, state.ToString());
autoEvent.Set();
}