我有一个任务或工作项队列,需要在后台按顺序执行。这些任务将属于“即发即弃”类型,这意味着一旦它们开始,我真的不在乎它们是否完成,不需要取消或状态更新。如果他们没有完成,用户将能够重试或手动诊断。
目标是能够保持对队列的引用并且只需要做
myQueue.Add( () => DoMyStuff() );
为了向队列中添加一些东西。
System.Threading.Task 类似乎只能一个接一个地对任务进行排队,而不是通过引用一个公共队列。我不想管理获取最新任务并附加到它的复杂性。
线程池不保证顺序并且将并行执行工作项。(这很棒,但不是我需要的)
是否有任何内置类可以处理我没有想到的?
编辑: 我们需要能够在以后将任务添加到队列中。场景是当用户单击按钮时,我们希望向设备发送命令(例如打开或关闭灯泡)。这些命令需要 5 秒来处理,我们希望用户能够多次单击并将请求排队。我们不知道有多少任务将排队,也不知道任务是什么。