C# 控制台应用线程?

标签 c# multithreading console

我将要编写一个控制台应用程序,该应用程序将在每周日凌晨 2 点运行一次。它将查询一个 SQL 服务器数据库,然后执行一些计算,然后将结果写入一个新数据库。

它正在处理数十万条记录,因此需要数小时才能完成。

我将创建一个 C# 控制台应用程序并使用 Windows 调度程序启动它。

我的问题是:

1) 您认为这是一个好的方法吗? 2) 过去,类似的控制台应用程序在不断循环时将 CPU 使用率设置为 100%。是否有正确处理线程等的好方法?

非常感谢在我开始之前提出任何建议。

T

最佳答案

总的来说,这是一个很好的方法,因为它将 CPU 和数据密集型进程安排在非高峰/非工作时间,因此用户体验和应用程序可用性不会降低。唯一要考虑的是——你的工作进程可能花费多少时间?如果它要运行到 30-40 小时,那么它可能会影响周一的营业时间。

就线程而言,只有当您的计算需要一些时间并且不在数据库服务器上发生时,多线程才有用。所以在这种情况下,当一个线程正在等待来自数据库的数据时,其他线程可能会消耗 CPU。但是,多线程意味着,您应该能够水平划分数据,以便每个线程可以处理不同的记录集。

关于C# 控制台应用线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3777204/

相关文章:

c# - 新的 ReSharper Equals() 和 GetHashCode() 代码生成方法

c# - 每天将大量 XML 数据(> 1Gb)导入 SQL Server 2008

c++ - 启动 boost::asio::io_service 时的例程

ruby-on-rails - 使用Rails控制台时的换行符(终端)

c# - C#中不同的对象列表

c# - Windows 终端 - 用于嵌入 cmd 的 Windows 窗体

ios - @synchronized() 接受的参数是什么

c++ - boost 线程抛出异常 "thread_resource_error: resource temporarily unavailable"

c# Windows Service Console.Writeln 收藏

node.js - 为 repl 提示( Node )添加颜色