darwin setevent的使用注意事项

来源:互联网 发布:linux查看登录密码 编辑:程序博客网 时间:2024/05/22 05:01

信号无论调用setevent设置多少次触发信号,只要 WaitForSingleObject等待到一次信号,则信号自动设置为非触发状态。


HANDLE              fCondition = NULL;unsigned int WINAPI _Entry(LPVOID inThread);int main(int argc, char * argv[]) {fCondition = ::CreateEvent(NULL, FALSE, FALSE, NULL);unsigned int theId = 0; // We don't care about the identifierHANDLE fThreadID = (HANDLE)_beginthreadex( NULL,   // Inherit security0,      // Inherit stack size_Entry, // Entry function(void*)NULL,    // Entry arg0,      // Begin executing immediately&theId );while(1){for (int i =0;i < 100 ;i ++){SetEvent(fCondition);}cout << "准备休息...." << endl;Sleep(5000);}return 0;}unsigned int WINAPI _Entry(LPVOID inThread){while(true){DWORD theErr = WaitForSingleObject(fCondition,INFINITE);Assert((theErr == WAIT_OBJECT_0) || (theErr == WAIT_TIMEOUT));cout << "抢到了" << endl;}

}




0 0
原创粉丝点击