我正在使用通常以异步方式显示的警报窗口(Telerik WPF)(打开时代码将继续运行),并且我想通过使用async / await使其同步。
我可以使用它,TaskCompletionSource
但是该类是通用的,并且返回一个对象,就像Task<bool>
我想要的只是一个Task
没有返回值的普通对象一样。
public Task<bool> ShowAlert(object message, string windowTitle)
{
var dialogParameters = new DialogParameters { Content = message };
var tcs = new TaskCompletionSource<bool>();
dialogParameters.Closed += (s, e) => tcs.TrySetResult(true);
RadWindow.Alert(dialogParameters);
return tcs.Task;
}
调用该方法的代码是
await MessageBoxService.ShowAlert("The alert text.")
我该如何返回一个非通用Task,其功能类似于dialogParameters.Closed
事件触发之前可以等待的功能?我知道我可以忽略bool
此代码中返回的那个。我正在寻找一个不同的解决方案。
void
其接受为类型参数,则无需执行这些操作。