W programie Scala istnieje klasa Obietnica, która może być używana do ręcznego uzupełniania Przyszłości. Szukam alternatywy w języku C#.Równoważnik obiecywania w języku C#
piszę test i chcę wyglądać to mniej więcej tak:
// 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);
Rozumiem, że prawdopodobnie nie jest to prawo wzorzec dla C#, ale nie mogłem wymyślić rozsądny sposób osiągnąć to samo, nawet przy nieco odmiennym schemacie.
EDYCJA: należy pamiętać, że async
/await
nie pomoże tutaj, ponieważ nie mam zadania do czekania! Po prostu mam dostęp do programu obsługi, który będzie uruchamiany w innym wątku.
Możliwa duplikat [jak i kiedy używać \ 'asynchroniczny \' i \ '\' czekają] (http://stackoverflow.com/questions/14455293/how-and-when-to-use-async-and-aait) – Stijn
Myślę, że szukasz 'Task'. –