Promessa equivalente em C #
No Scala, há uma classe Promise que pode ser usada para concluir um futuro manualmente. Estou procurando uma alternativa em c #.
Estou escrevendo um teste e quero que seja parecido com este:
// 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);
Entendo que esse provavelmente não é o padrão certo para C #, mas não consegui descobrir uma maneira razoável de conseguir a mesma coisa, mesmo com um padrão um pouco diferente.
EDIT: observe queasync
/await
não ajuda aqui, pois não tenho uma tarefa a aguardar! Eu só tenho acesso a um manipulador que será executado em outro thread.