noob问题:使用Win32的事件对象
此链接显示我的问题是,如果ThreadProc的是真正的线程安全CreateEvent和CreateThread的
http://msdn.microsoft.com/en-us/library/ms686915(v=vs.85).aspx
的例子吗?
具体来说就是dwWaitResult变量。由于所有线程都在等待同一个事件,所以原来这段代码可以正常工作,但是创建了不同的事件,例如,这不正确?
noob问题:使用Win32的事件对象
此链接显示我的问题是,如果ThreadProc的是真正的线程安全CreateEvent和CreateThread的
http://msdn.microsoft.com/en-us/library/ms686915(v=vs.85).aspx
的例子吗?
具体来说就是dwWaitResult变量。由于所有线程都在等待同一个事件,所以原来这段代码可以正常工作,但是创建了不同的事件,例如,这不正确?
dwWaitResult
变量是该函数中的局部变量。因此每个单独的线程都有自己的副本,这可以确保该变量是线程安全的。每个线程都有自己的堆栈,因此所有局部变量都是特定于单个线程的。
该事件是通过名称创建的,所以如果该事件已经创建,则可以在任何其他线程中“重复”创建具有相同名称的事件。结果,示例代码是线程安全的。
“因此所有局部变量都是特定于单个线程的。”是真的,因为变量是本地和非静态的,每个调用者(线程)都有一个单独的变量dwWaitResult实例化? – Eric 2011-01-11 15:26:20