-1

我对问题陈述有一个要求,就像说,当一个事件被触发时,我必须调用一个任务完成源,使用异步和等待。将发生多个事件,并且每次发生事件时都必须调用此任务完成。(还会发生多个任务,并提高此任务的完成度)

比如说,有几何形状和与这些形状相对应的空白空间。当这些对象形状被放置在这个空间中时,应该触发一个事件,这会引发任务完成源。

所以想要实现一个使用任务完成源的程序,根据发生的事件、依赖注入、系统事件/通知以及检查事件是否完成。(对于多个事件)。

希望我对要求很清楚,但由于问题陈述有点棘手,因为它涉及很多 TPL Async 概念,我尽力解释,因此对上面的形状游戏进行了类比。

任何有用的建议/链接/建议都会很棒。

提前致谢!!!..

4

1 回答 1

0

一个任务完成源只能完成一次。对于您的情况,这听起来不是正确的解决方案。看看 SemaphoreSlim,它支持异步并且是线程中立的。它会让你在每次事件发生时释放一个等待线程(WaitAsync)(一个形状被放在一个空间中)。

https://docs.microsoft.com/en-us/dotnet/api/system.threading.semaphoreslim?view=netframework-4.7.2

于 2019-04-02T21:33:49.003 回答