【发布时间】:2014-03-20 10:50:53
【问题描述】:
我正在使用第三方 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 为 null,因为事件处理程序代码在函数返回执行后启动。
如何让事件处理程序在 TestPost 函数返回之前异步执行。
请建议我在这里可以做什么。
【问题讨论】:
标签: c# asp.net-mvc async-await event-driven