C#任务完成源

问题描述 投票:-1回答:1

我有问题陈述的要求就像说,当事件被触发时,我必须使用async和await来调用任务完成源。将发生多个事件,并且每次发生事件时都必须调用此任务完成。 (还会有多个任务会发生,并且完成这项任务)

比如说有几何形状和与这些形状相对应的空白空间。将这些对象形状放入此空间时,应触发事件,从而引发任务完成源。

因此,希望实现一个程序,该程序使用任务完成源,基于发生的事件,依赖注入,系统事件/通知以及检查已完成的事件。(针对多个事件)。

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

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

提前致谢!!!..

c# task-parallel-library taskcompletionsource
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.