【发布时间】:2020-08-12 16:20:07
【问题描述】:
我正在使用通常异步显示的警报窗口 (Telerik WPF)(代码在打开时继续运行),我想通过使用 async/await 使其同步。
我有这个使用TaskCompletionSource,但是这个类是通用的,当我想要一个没有返回值的普通Task时返回一个像Task<bool>这样的对象。
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。我正在寻找与此不同的解决方案。
【问题讨论】:
标签: c# .net async-await