Ich habe dieses Problem mit einer Methode in C#. Ich machte eine Methode, die eine Funktion aus einer DLL aufgerufen wird Phone.GetLampMode();
Nun Phone.GetLampMode
gibt nichts zurück. Die Daten werden in einem Ereignis mit dem 'onGetLampModeResponse
'-Ereignis zurückgegeben. Gibt es eine Möglichkeit, wie ich in meiner Methode warten kann, bis ich die Daten vom onGetLampModeResponse-Ereignis bekomme?Warten Sie innerhalb Methode, bis Ereignis erfasst wird
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();
}
Was der zweite Parameter von GetLampMode ist? Lass mich raten: Ein Objekt, das du selbst definieren kannst? Und ist das Objekt der "Sender" im Event-Handler oder im "e"? EDIT: Ja ist es, es heißt UserState. Sie können diesen userState innerhalb der Variable 'e' in der Callback-Funktion abrufen. – sinni800
Ich kann mir eine hässliche Lösung vorstellen, indem ich ein globales 'bool' definiere, das von' OnGetLampModeResponse' auf 'true' gesetzt und in einer Schleife mit' checkLamp' überprüft wird. –
@ John Willemse das ist ziemlich hässlich und sollte nicht getan werden, da das Konzept der Übergabe von Zustandsvariablen an Ereignisse existiert. – sinni800