假设我有一个API事件,在这个事件中我需要返回一个结果。我需要进行的计算使用了一个异步方法,该方法会创建一个控件(必须在UI线程上运行)。
private async void API_QueryControl(object sender, APIEventArgs e)
{
e.Result = await CreateControl();
}
private async Task<Control> CreateControl()
{
await Task.Delay(1000);
return new Panel();
}
显然这样做行不通,因为API_QueryControl在我设置结果之前就已经返回了。我无法控制API,这意味着事件无法改变。那么我该如何让事件等待结果呢?