Событие кнопки регистрирует только каждый второй щелчок

Я создал стандартную кнопку с помощью Expression Blend 3 и связал ее с обработчиком событий для включения светодиода. У меня также есть аналогичная кнопка для выключения светодиода. Я передаю это событие между подпроектами (с начала до конца) с помощью Windows CreateEvent() а также SetEvent(),

Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно дважды нажать кнопку, чтобы сервер зарегистрировал событие. Каждый клик будет зарегистрирован внешним интерфейсом и SetEvent() Функция будет выполнена, но только на втором проходе она будет подхвачена в конце.

Реализация интерфейса:

HRESULT MainPage::Disable_Alarm_Click (IXRDependencyObject* pSender, XRMouseButtonEventArgs* pArgs)
{
HRESULT hr = E_NOTIMPL;

if ((NULL == pSender) || (NULL == pArgs))
{
hr = E_INVALIDARG;
}

SetEvent(s_hEvent[19]); //Notify back end that event occured

return hr;
}

Реализация конечного события:

m_hEvents[ALARM_DISABLE_1] = CreateEvent(NULL, false, false, ALARM_DISABLE_EVENT);
if(m_hEvents[ALARM_DISABLE_1] == NULL)
{
return;
}

Сканирование внутренних событий:

case WAIT_OBJECT_0 + ALARM_DISABLE_1:
//Do stuff
//I put a breakpoint here but it does not hit it until second pass
break;

Чтобы уточнить caseУ меня есть бесконечный цикл для случая переключения, содержащий список всех событий, относящихся к серверной части, и это работает без проблем, так как другие события регистрируются каждый раз, когда они происходят.

Я не уверен, что делаю что-то не так в своем коде. Это кажется довольно простым с точки зрения кодирования. Это просто ошибка с функцией Windows?

Я попытался пройтись по коду, чтобы увидеть, что происходит, и он всегда поражает мой SetEvent функция, поэтому я не нашел никаких проблем с моим кодом. Просто кажется, что SetEvent не устанавливает имя объекта события каждый раз.

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]