在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
在这里没有帮助,因为我没有等待的任务!我只有访问将在另一个线程上运行的处理程序的权限。
Task<T>
。