在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