我正在使用一个通常异步显示的alert 窗口(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
.我正在寻找一个不同的解决方案.