Обещанный эквивалент в C #
В Scala есть класс Promise, который можно использовать для завершения Future вручную. Я ищу альтернативу в C #.
Я пишу тест, и я хочу, чтобы он выглядел примерно так:
// 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);
Я понимаю, что это, вероятно, не правильный шаблон для C #, но я не мог найти разумный способ добиться того же, даже с несколько другим шаблоном.
РЕДАКТИРОВАТЬ: пожалуйста, обратите внимание, чтоasync
/await
здесь не помогает, так как у меня нет задачи ждать! У меня просто есть доступ к обработчику, который будет запущен в другом потоке.