C#-AsyncWaitHandle.WaitOne会阻止CLR线程吗?还是创建一个I / O完成端口?
作者:互联网
我有这个问题,AsyncWaitHandle.WaitOne会阻止CLR线程吗?还是创建一个I / O完成端口?
例如,当我运行我的应用程序时,我启动一个任务“ A”来初始化一些数据,当新请求到达时,我希望它们等到“ A”完成后,因此可以执行IAsyncResult.AsyncWaitHandle.WaitOne. ..它阻塞调用线程直到’A’结束还是创建I / O完成端口,当’A’完成时也会通知该端口.
如果没有,有办法吗?
问候.
解决方法:
是的,它阻塞了线程,但是像其他任何WaitHandle一样,它阻塞了OS内核,因此不占用任何CPU时间.
如果您不想阻塞线程,但想要“回调”,则可以使用线程池:
ThreadPool.RegisterWaitForSingleObject( waitHandle, callback, ...
标签:multithreading,asynchronous,iasyncresult,c 来源: https://codeday.me/bug/20191101/1987291.html