c# - 定时Windows服务由于运行多个线程而崩溃

标签 c# multithreading windows-services timer

我正在开发一个简单的Web服务,该服务将从一些数据存储中导出数据到数据库中。

该服务每20秒(测试间隔)运行一次。

间隔是通过System.Timers.Timer类实现的。

目前正在发生的是:

  • 服务启动
  • 计时器启动
  • 20秒过去,服务开始导出
  • 导出无法在接下来的20秒内完成,并且另一个线程开始尝试进行相同的导出。
  • 最终服务崩溃。

  • 我打算将导出文件包装到单独的线程中,但是不确定是否可以完全解决问题。

    增加时间间隔不是一种选择,因为我不确定 future 的导出量会是多少。

    欢迎任何建议。

    谢谢

    编辑:

    我想我要的是:
    1.启动计时器
    2.启动线程
    3.开始导出
    4.在上一个线程完成之前,不要让计时器启动另一个线程。

    最佳答案

    如何在第3步中首先禁用计时器,然后在完成导出后重新启用计时器?

    关于c# - 定时Windows服务由于运行多个线程而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167010/

    相关文章:

    c# - OLEDB 读取 Excel 文件不适用于 IIS asp.net C#

    java - 死锁和同步方法

    multithreading - 多线程应用程序无法使用错误链进行编译

    java - 等待数据准备好(Java)

    c# - Windows 服务在 net.tcp 连接上失败,但控制台应用程序工作正常

    c# - 仅从 Azure Web Scheduler 调用 Asp.Net MVC Web API

    c# - 如何在 C# 中更改动态添加控件的 anchor 和停靠样式

    windows-services - 有关 C# 中 Windows 服务的书籍和教程?

    windows-services - 创建 Kibana Windows 服务的问题

    c# - WP7 应用程序测试中的单元测试日志