0

我正在开发一个每 15 分钟运行一次的 Windows 服务,并向 iOS、Android 和 BlackBerry 用户发送推送通知。这些设备特定操作中的每一个都将在 Windows 服务的单独线程中运行。这一切都很好,但是我们有可能一次需要发送多达 50,000 个推送通知。如果发生这种情况,可能需要超过 15 分钟,所以在下一个服务运行之前,我想知道上一个进程是否已经完成,如果没有,等待并排队 Windows 服务执行一旦先前的执行完成。我对线程方面很好,但我不知道实现我上面描述的场景的正确方法。C# 中是否有某种“等待”或“队列”机制?

4

1 回答 1

1

由于您的服务使用 aTimer来安排工作,因此它始终可以在工作开始时禁用计时器,并在工作结束时根据需要重新安排时间。

这允许很大的灵活性。如果一个工作队列花费了超过 15 分钟,您可以决定是否延迟下一个工作,立即启动它(可能“永远”运行),完全跳过它,或者任何您需要的,因为计时器不会再次运行直到重新启用。

于 2013-07-23T00:33:58.760 回答