最佳答案
我使用的警报窗口(Telerik WPF)通常是异步显示的(代码在打开时继续运行) ,我希望通过使用异步/等待来实现同步。
我有这个工作与 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。我正在寻找一个不同的解决方案。