Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从任务中获取WaitHandle_.net_Multithreading - Fatal编程技术网

.net 从任务中获取WaitHandle

.net 从任务中获取WaitHandle,.net,multithreading,.net,Multithreading,我有一个迭代器方法,其中我需要使用任务、取消令牌和自动恢复事件来监视生产者流程。我需要能够等待任何(我不能等待,因为它是一个迭代器) 我使用了Threading.WaitHandle.WaitAny(WaitHandle[])对于CancellationToken和AutoResetEvent来说是不错的,但是我找不到如何从任务中获取WaitHandle。诀窍是将任务强制转换为IAsyncResult,然后可以像这样使用asynchwaithandle属性 Threading.WaitHandl

我有一个迭代器方法,其中我需要使用
任务
取消令牌
自动恢复事件
来监视生产者流程。我需要能够等待任何(我不能等待,因为它是一个迭代器)


我使用了
Threading.WaitHandle.WaitAny(WaitHandle[])
对于
CancellationToken
AutoResetEvent
来说是不错的,但是我找不到如何从任务中获取
WaitHandle

诀窍是将
任务
强制转换为
IAsyncResult
,然后可以像这样使用
asynchwaithandle
属性

Threading.WaitHandle.WaitAny(New Threading.WaitHandle[] {((IAsyncResult)MyTask).AsyncWaitHandle, token.WaitHandle, autoResetHandle})