In Scala gibt es eine Promise-Klasse, mit der eine Zukunft manuell abgeschlossen werden kann. Ich suche nach einer Alternative in C #.
Ich schreibe einen Test und möchte, dass er ungefähr so aussieht:
// var MyResult has a field `Header`
var promise = new Promise<MyResult>;
handlerMyEventsWithHandler( msg =>
promise.Complete(msg);
);
// Wait for 2 seconds
var myResult = promise.Future.Await(2000);
Assert.Equals("my header", myResult.Header);
Ich verstehe, dass dies wahrscheinlich nicht das richtige Muster für C # ist, aber ich konnte keinen vernünftigen Weg finden, um dasselbe auch mit etwas anderem Muster zu erreichen.
EDIT: bitte beachten Sie, dass async
/ await
hier nicht hilft, da ich keine Aufgabe zu erwarten habe! Ich habe nur Zugriff auf einen Handler, der auf einem anderen Thread ausgeführt wird.
Task<T>
.