Я работаю с окном предупреждения (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
, который возвращается в этом коде. Я ищу другое решение, чем это.