У меня есть проблема с методом на C#. Я сделал метод, который вызывает функцию из dll, которую он назвал Phone.GetLampMode();
Теперь Phone.GetLampMode
ничего не возвращает. Данные возвращаются в событии 'onGetLampModeResponse
'. Есть ли способ, которым я могу подождать в моем методе, пока не получу данные из события onGetLampModeResponse?Метод ожидания до тех пор, пока не будет зафиксировано событие
public bool checkLamp(int iLamp)
{
Phone.ButtonIDConstants btn = new Phone.ButtonIDConstants();
btn = Phone.ButtonIDConstants.BUTTON_1;
btn += iLamp;
Phone.GetLampMode(btn, null);
return true;
}
private void Phone_OnGetLampModeResponse(object sender, Phone.GetLampModeResponseArgs e)
{
var test = e.getLampModeList[0].getLampMode.ToString();
}
Что является вторым параметром GetLampMode? Позвольте мне угадать: объект, который вы можете определить сами? И этот объект является «отправителем» в обработчике событий или внутри 'e'? EDIT: Да, это называется userState. Вы можете получить этот пользовательский элемент внутри переменной 'e' в функции обратного вызова. – sinni800
Я могу думать об одном уродливом решении, определяя глобальный 'bool', который установлен в' true', 'OnGetLampModeResponse' и проверяется в цикле' checkLamp'. –
@JohnWillemse это довольно уродливо и не нужно делать, поскольку существует концепция передачи переменных состояния событиям. – sinni800