Delphi `TWaitResult.wrIOCompletion`未记录在案。有人能提供使用技巧吗?
Delphi `TWaitResult.wrIOCompletion`未记录在案。有人能提供使用技巧吗?,delphi,Delphi,twairtresult.wrIOCompletion。有人知道它是何时和如何使用的吗 它仅在Windows上使用,THandleObject(及其子体TEvent,TSimpleEvent,TMutex,和TSemaphore)采用以下方法: 。创建对象时,将UseCOMWait设置为True,等待由Win32 API函数处理,如果报告了RPC\u S\u CALLPENDING,则返回wrIOCompletion。当UseCOMWait改为False时,等待由Win32 API函数1处理 w
twairtresult.wrIOCompletion
。有人知道它是何时和如何使用的吗 它仅在Windows上使用,THandleObject
(及其子体TEvent
,TSimpleEvent
,TMutex
,和TSemaphore
)采用以下方法:
UseCOMWait
设置为True,等待由Win32 API函数处理,如果报告了RPC\u S\u CALLPENDING
,则返回wrIOCompletion
。当UseCOMWait
改为False时,等待由Win32 API函数1处理UseCOMWait
参数为True并报告RPC\u S\u CALLPENDING
,或者UseCOMWait
为False并报告WAIT\u IO\u COMPLETION
,则返回code>wrIOCompletionwrIOCompletion
表示调用WaitFor/Multiple()
的线程必须在超时时间过去之前停止等待,以便执行一个或多个排队的可报警/APC函数。线程必须再次调用WaitFor/Multiple()
,以完成对所需对象的等待3
1:
THandleObject.WaitFor()
当前不处理WAIT\u IO\u COMPLETION
(错误?)当UseCOMWait
为false时。它将返回wrError
(并且不会分配属性的值!)
2:文档将RPC_S_CALLPENDING
描述为“发出所需句柄的信号之前经过的超时时间”,但这将是RPC_E_timeout
更合适的描述。(文档错误?)
3:实际上,决不应发生wrIOCompletion
,因为从不使用COWAIT\u ALERTABLE
标志调用:
如果在dwFlags中设置了COWAIT_ALERTABLE标志,则WAIT_IO_COMPLETION的值表示等待由排队到线程的一个或多个用户模式异步过程调用(APC)结束
并且在其bAlertable
参数设置为True时从不调用:
bAlertable[in]如果此参数为TRUE且线程处于等待状态,则当系统将I/O完成例程或APC排入队列,且线程运行该例程或函数时,函数返回。否则,函数不会返回,并且不会执行完成例程或APC函数 触发
wrIOCompletion
结果需要这些条件。我已在中为此打开了错误报告:
UseCOMWait
设置为True,等待由Win32 API函数处理,如果报告了RPC\u S\u CALLPENDING
,则返回wrIOCompletion
。当UseCOMWait
改为False时,等待由Win32 API函数1处理UseCOMWait
参数为True并报告RPC\u S\u CALLPENDING
,或者UseCOMWait
为False并报告WAIT\u IO\u COMPLETION
,则返回code>wrIOCompletionwrIOCompletion
表示调用WaitFor/Multiple()
的线程必须在超时时间过去之前停止等待,以便执行一个或多个排队的可报警/APC函数。线程必须再次调用WaitFor/Multiple()
,以完成对所需对象的等待3
1:
THandleObject.WaitFor()
当前不处理WAIT\u IO\u COMPLETION
(错误?)当UseCOMWait
为false时。它将返回wrError
(并且不会分配属性的值!)
2:文档将RPC_S_CALLPENDING
描述为“发出所需句柄的信号之前经过的超时时间”,但这将是RPC_E_timeout
更合适的描述。(文档错误?)
3:实际上,决不应发生wrIOCompletion
,因为从不使用COWAIT\u ALERTABLE
标志调用:
如果在dwFlags中设置了COWAIT_ALERTABLE标志,则WAIT_IO_COMPLETION的值表示等待由排队到线程的一个或多个用户模式异步过程调用(APC)结束
并且在其bAlertable
参数设置为True时从不调用:
bAlertable[in]如果此参数为TRUE且线程处于等待状态,则当系统将I/O完成例程或APC排入队列,且线程运行该例程或函数时,函数返回。否则,函数不会返回,并且不会执行完成例程或APC函数 触发
wrIOCompletion
结果需要这些条件。我已经打开了一个bug rep