在this article,部分“更多的等待......”,当笔者谈到同步I/O与线程,第一个例子,他给人的是:与调用线程同步I/O?
hFile = CreateFile(....,FILE_IO_OVERLAPPED,...);
ReadFile(hFile,...)
< Do some computation.>
WaitForSingleObject(hFile,INFINITE);
我的印象是既“的CreateFile”和“ ReadFile'是同步 API,不是吗?为什么这里需要'WaitForSingleObject'? 'CreateFile'和'ReadFile'会阻止,直到操作结束然后返回?
然后当作者谈论'可警告的等待'时会出现更多混乱。它是什么,WaitForSingleObjectEx()之后的线程状态?那么为什么笔者给:
while (WaitForSingleObject(hObject,TRUE)==WAIT_IO_COMPLETION);
为例代替
while (WaitForSingleObjectEx(hObject,TRUE)==WAIT_IO_COMPLETION);
?
,并应 'EX' 功能一起想:
hFile = CreateFile(....,FILE_IO_OVERLAPPED,...);
ReadFileEx(hFile,...)
< Do some computation.>
while (WaitForSingleObjectEx(hObject,TRUE)==WAIT_IO_COMPLETION);
任何一个可以解释一下?
感谢,
感谢。 Yossarian我在这个问题上太粗心了 – user1559625