Обещанный эквивалент в 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 здесь не помогает, так как у меня нет задачи ждать! У меня просто есть доступ к обработчику, который будет запущен в другом потоке.

Ответы на вопрос(5)

Ваш ответ на вопрос