【发布时间】:2010-07-02 15:19:39
【问题描述】:
我正在开发一个简单的 Web 服务,它将数据从某个数据存储区导出到数据库中。
服务每 20 秒运行一次(测试间隔)。
间隔通过System.Timers.Timer类实现。
目前正在发生的事情是:
- 服务开始
- 定时器启动
- 20 秒过去了,服务开始导出
- 导出未在接下来的 20 秒内完成,另一个线程开始尝试执行相同的导出。
- 最终服务崩溃。
我打算将导出包装到一个单独的线程中,但不确定这是否能完全解决问题。
增加时间间隔不是一种选择,因为我不确定未来的出口量会有多大。
欢迎提出任何建议。
谢谢
编辑:
我想我想要的是: 1.启动定时器 2.启动线程 3.开始导出 4. 在前一个线程完成之前,不要让计时器启动另一个线程...
【问题讨论】:
-
为什么不使用布尔静态字段来跟踪导出是否正在运行? (如果是,则不运行新线程)
标签: c# multithreading windows-services timer