在斯卡拉有一個Promise類,可以用來手動完成一個Future。我正在尋找在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#正確的模式,但我無法找出一個合理的方式即使有些不同的模式也能達到同樣的效果。
編輯:請注意,async
/await
沒有幫助,因爲我沒有任務等待!我只能訪問將在另一個線程上運行的處理程序。
的可能的複製[如何以及何時使用\'異步\'和\'\伺機'](http://stackoverflow.com/questions/14455293 /如何及何時使用異步和等待) – Stijn
我認爲你正在尋找'任務'。 –