Использование объектов событий Win32 - PullRequest
1 голос
/ 11 января 2011

Вопрос Noob:

Эта ссылка показывает пример CreateEvent и CreateThread

http://msdn.microsoft.com/en-us/library/ms686915(v=vs.85).aspx

У меня вопрос, действительно ли ThreadProc действительно потокобезопасен?

В частности, переменная dwWaitResult. Поскольку все потоки ожидают одного и того же события, оказывается, этот код работает, но если бы были созданы разные события, например, это не будет работать правильно?

Ответы [ 2 ]

3 голосов
/ 11 января 2011

Переменная dwWaitResult является локальной переменной в этой функции. Таким образом, каждый отдельный поток имеет свою собственную копию, которая гарантирует, что переменная является потокобезопасной. Каждый поток имеет свой собственный стек, поэтому все локальные переменные являются специфическими для отдельного потока.

0 голосов
/ 11 января 2011

Событие создается по имени, поэтому, если событие уже создано, оно используется в любом другом потоке, «создавая» событие с тем же именем. В результате пример кода является поточно-ориентированным.

...