En Scala, il existe une classe Promise qui pourrait être utilisée pour compléter manuellement un Future. Je cherche une alternative en C#.
J'écris un test et je veux qu'il ressemble à ceci :
// 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);
Je comprends que ce n'est probablement pas le bon modèle pour le C#, mais je n'ai pas réussi à trouver un moyen raisonnable d'obtenir la même chose, même avec un modèle quelque peu différent.
EDIT : veuillez noter que async
/ await
n'est pas utile ici, car je n'ai pas de tâche à attendre ! J'ai juste un accès à un gestionnaire qui sera exécuté sur un autre thread.
3 votes
Je pense que vous cherchez
Task<T>
.