最佳答案
我使用的警报窗口(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
。我正在寻找一个不同的解决方案。