我正在使用通常异步显示的警报窗口(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.")
如何返回一个功能相似的非通用任务,我可以等待直到dialogParameters.Closed
事件触发?我知道我可以忽略bool
此代码中返回的内容。我正在寻找与此不同的解决方案。