我将要编写一个控制台应用程序,该应用程序将在每周日凌晨 2 点运行一次。它将查询一个 SQL 服务器数据库,然后执行一些计算,然后将结果写入一个新数据库。
它正在处理数十万条记录,因此需要数小时才能完成。
我将创建一个 C# 控制台应用程序并使用 Windows 调度程序启动它。
我的问题是:
1) 您认为这是一个好的方法吗? 2) 过去,类似的控制台应用程序在不断循环时将 CPU 使用率设置为 100%。是否有正确处理线程等的好方法?
非常感谢在我开始之前提出任何建议。
T
最佳答案
总的来说,这是一个很好的方法,因为它将 CPU 和数据密集型进程安排在非高峰/非工作时间,因此用户体验和应用程序可用性不会降低。唯一要考虑的是——你的工作进程可能花费多少时间?如果它要运行到 30-40 小时,那么它可能会影响周一的营业时间。
就线程而言,只有当您的计算需要一些时间并且不在数据库服务器上发生时,多线程才有用。所以在这种情况下,当一个线程正在等待来自数据库的数据时,其他线程可能会消耗 CPU。但是,多线程意味着,您应该能够水平划分数据,以便每个线程可以处理不同的记录集。
关于C# 控制台应用线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3777204/