Ich arbeite mit einem Warnfenster (Telerik WPF), das normalerweise asynchron angezeigt wird (Code wird weiterhin ausgeführt, solange es geöffnet ist), und ich möchte es mithilfe von async / await synchronisieren.
Ich arbeite damit, TaskCompletionSource
aber diese Klasse ist generisch und gibt ein Objekt zurück, wie Task<bool>
wenn ich nur eine Ebene Task
ohne Rückgabewert möchte .
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;
}
Der Code, der diese Methode aufruft, lautet
await MessageBoxService.ShowAlert("The alert text.")
Wie kann ich eine nicht generische Aufgabe zurückgeben, die ähnlich funktioniert und auf die ich warten kann, bis das dialogParameters.Closed
Ereignis ausgelöst wird? Ich verstehe, dass ich das bool
, was in diesem Code zurückgegeben wird, einfach ignorieren könnte . Ich suche nach einer anderen Lösung.
void
als Typparameter akzeptiert würde, müssten Sie diese Verzerrungen nicht ausführen.