【发布时间】:2011-08-29 22:02:00
【问题描述】:
我想看看是否有人对动态使用计时器有任何经验或技巧。我们需要一个定期检查文本文件的 Windows 服务。文本文件将包含市场名称和开始时间。然后,该服务需要创建一个计时器来执行倒计时并将倒计时信息写入 xml 文件......比如 23 分钟
所有这些现在都可以在一个 Windows 应用程序上运行,用于一个计时器和一个倒计时......我们现在想要使这个动态......
所以当服务启动时,它会为每个市场/倒计时时间创建一个计时器...(例如凤凰城上午 10 点,芝加哥晚上 11:45 等)。
然后该服务将检查该文本文件中是否有任何新条目...因此,如果该文件包含 Phoenix、Chicago,然后添加了 New York,我们希望该服务保持 Phoenix 和 Chicago 计时器运行,然后启动一个纽约的计时器。
我只是不确定在一个服务下运行的多个计时器如何交互,以及当它们都需要写入同一个 xml 文件时线程将如何工作。
对此有什么想法吗?
【问题讨论】:
-
您将不得不同步您的文件写入操作 - TextWriters、BinaryWriters 等都不是线程安全的。
-
另外,如果有助于澄清一点;当你说你检查一个 XML 文件时,你是在说:从 XML 文件 A 加载数据,等待一段时间,然后写入 XML 文件 B 对吗?
-
@VulcanCCIT:您能否编辑您的问题以详细说明 Tejs 的问题?我无法给你一个可靠的答案,因为我不明白你的系统应该如何确切地工作。
标签: c# .net multithreading timer thread-safety