我正在使用第三方API,它看起來像使用事件驅動架構編寫的。我正在對API上的某個方法進行異步調用,但方法的響應僅在事件處理程序中返回。因此,我必須訂閱該事件,然後調用API的方法調用。異步事件訂閱
僞代碼示例:
private string myValue;
public async Task<string> TestPost()
{
// Subscribe to event
api.OnSomeAPIFunctionResponse += EventHandler1;
await CallAPIFunction(...with some parameters...);
return myValue;
}
private void EventHandler1(sender, args)
{
// This is the value I want to return in the previous function
myValue = args.value;
}
在上述myvalue的代碼示例爲空,當我運行該應用程序,因爲事件處理程序代碼踢在函數返回執行之後。
如何在TestPost函數返回之前使事件處理程序異步執行。
請告訴我在這裏可以做些什麼。
感謝但請閱讀文章我已經說過我訂閱的事件返回結果,而不是實際的功能,它已經等待。我想同時運行事件和事件處理程序,所以當TestPost函數返回時它有一個來自事件處理程序參數的值。謝謝:) – ConfusedCoder
我已更新我的帖子,希望有所幫助。 –