Windows API "Chess Timer" Событие Sepmaphore - PullRequest
0 голосов
/ 01 марта 2009

Есть ли семафон, который работает как шахматный таймер, что означает;

Поток A завершает свою задачу, возвращается к началу и вызывает Семафор

Это запускает поток 2, который проходит через свой код, возвращается к началу и вызывает семафор

Это вызывает поток А, который ...

Итак, Семафор блокирует и сигнализирует.

Я знаю, что могу просто использовать два события и WaitForSingleObject, но мне было интересно, есть ли семафор, который делает это специально?

Находясь на предмете, насколько "дорогим" является Событие и насколько "дорог" "WaitForSingleObject () с точки зрения памяти и процессора?

1 Ответ

5 голосов
/ 01 марта 2009

Хммм ... Вы уверены, что вам вообще нужны две нити? Похоже, что ваши подпрограммы не могут работать одновременно, по крайней мере, если я понимаю метафору. Если это так, поместите их в одну ветку.

while (true)
{
    task1();
    task2();
}
...