Не -Generic TaskCompletionSource или альтернативный

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

62
задан Kevin Kalitowski 1 June 2016 в 18:45
поделиться