假设我有一个 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,这意味着无法更改事件。我如何让事件等待结果?