В Scala есть класс Promise, который можно использовать для завершения Будущего вручную. Я ищу альтернативу в C#.Обещающий эквивалент в 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#, но я не мог понять, разумный способ для достижения той же самой вещи даже с несколько иной структурой.
EDIT: обратите внимание, что async
/await
здесь не помогает, так как у меня нет задаче ждать! Я просто имею доступ к обработчику, который будет запущен в другом потоке.
Возможного дубликат [как и когда использовать \ 'асинхронной \' и \ '\' ОЖИДАНИЕ] (http://stackoverflow.com/questions/14455293/how-and-when-to-use-async-and-wait) – Stijn
Я думаю, что вы ищете 'Task'. –