Mam ten problem z metodą w języku C#. Zrobiłem metodę, która wywołuje funkcję z biblioteki dll nazywa się Phone.GetLampMode();
Teraz Phone.GetLampMode
nic nie zwraca. Dane zostaną zwrócone w przypadku zdarzenia "onGetLampModeResponse
". Czy jest sposób, w jaki mogę czekać w mojej metodzie, dopóki nie otrzymam danych ze zdarzenia onGetLampModeResponse?Poczekaj wewnątrz metody, aż zostanie przechwycone zdarzenie
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();
}
Co jest drugim parametrem GetLampMode? Niech zgadnę: obiekt, który możesz sam zdefiniować? I czy ten obiekt jest "nadawcą" w procederze obsługi zdarzeń lub wewnątrz 'e'? EDYCJA: Tak, nazywa się userState. Możesz pobrać ten stan użytkownika wewnątrz zmiennej 'e' w funkcji wywołania zwrotnego. – sinni800
Mogę wymyślić jedno brzydkie rozwiązanie, definiując globalny 'bool', który jest ustawiony na' true' przez 'OnGetLampModeResponse' i sprawdzony w pętli przez' checkLamp'. –
@JohnWillemse to dość brzydkie i nie powinno się tego robić, ponieważ istnieje koncepcja przekazywania zmiennych stanu do zdarzeń. – sinni800