- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
异步与同步的概念:
同步:必须等待函数执行的操作完成,才返回
异步:只发送请求,不用等待函数执行完成,立即返回
异步的实现:
HANDLE g_hOverlappedEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
OVERLAPPED Overlapped;
memset(&Overlapped, 0, sizeof(OVERLAPPED));
ULONG ulRet= 0;
Overlapped.hEvent = g_hOverlappedEvent;
ulRet = ReadFile(gh_Device, &OpInfo, sizeof(OP_INFO), &ulBytesReturn, &Overlapped);
if (ulRet == 0)
{
if (GetLastError() == ERROR_IO_PENDING)
{
ULONG ulReturn = WaitForSingleObject(Overlapped.hEvent, INFINITE);
if (ulReturn == WAIT_FAILED)
{
break;
}
}
}[/code]
具体的可以参考这篇文章
http://www.blogfshare.com/irp-synchronization-asynchronous.html |
|