Tôi gặp vấn đề này với phương thức trong C#. Tôi đã thực hiện một phương thức gọi một hàm từ một dll được gọi là Phone.GetLampMode();
Bây giờ Phone.GetLampMode
không trả lại bất kỳ điều gì. Dữ liệu được trả về trong sự kiện 'onGetLampModeResponse
' sự kiện. Có cách nào tôi có thể chờ đợi trong phương pháp của tôi cho đến khi tôi nhận được dữ liệu từ sự kiện onGetLampModeResponse?Đợi phương thức bên trong cho đến khi sự kiện được chụp
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();
}
tham số thứ hai của GetLampMode là gì? Hãy để tôi đoán: Một đối tượng mà bạn có thể xác định chính mình? Và đó là đối tượng 'người gửi' trong trình xử lý sự kiện hay bên trong' e'? EDIT: Vâng, nó được gọi là userState. Bạn có thể lấy userState này bên trong biến 'e' trong hàm gọi lại. – sinni800
Tôi có thể nghĩ ra một giải pháp xấu bằng cách định nghĩa một 'bool' toàn cục được đặt thành' true' bởi 'OnGetLampModeResponse' và được kiểm tra trong một vòng lặp bằng' checkLamp'. –
@JohnWillemse khá xấu và không nên được thực hiện vì khái niệm về việc trao các biến trạng thái cho các sự kiện tồn tại. – sinni800