Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Несколько вопросов по AutoResetEvent

4.3K
10 января 2007 года
VasAlVit
33 / / 03.09.2004
1. Метод WaitHandle.WaitAny получает массив event'ов и ждёт любого из них. Он возвращает номер сработавшего event'а. Если одновременно сработали два event'а, номер какого он вернёт?

2. AutoResetEvent. Как можно проверить, сработал ли он, не останавливая поток.
303
11 января 2007 года
makbeth
1.0K / / 25.11.2004
1. Цитата из MSDN (WaitForMultipleObjects):
Цитата:

If more than one object became signaled during the call, this is the array index of the signaled object with the smallest index value of all the signaled objects.


Т.е. вернется наименьший номер(индекс) event'а в массиве.

2. Стандартных способов, насколько я знаю - нет. Можно извернуться, вызвав WaitOne с маленьким таймаутом:

 
Код:
if(MyEvent.WaitOne(1, false))
{
    // Событие установлено
} else
{
    // Событие сброшено
}

Но, скорее всего, у тебя что-то не так с алгоритмом. Попробуй его пересмотреть так, чтобы не использовать таких проверок.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог