为多个实例构建C#控制台应用程序

时间:2010-10-31 10:00:15

标签: c# console-application

我正在构建一个将数据导入数据库的控制台应用程序。这是每小时运行一次,具体取决于存在的输入CSV文件。该应用程序还需要重新用于同一服务器上的其他数据库导入,例如:最多可能有20个同一个.exe文件的实例,每个实例都有自己独立的配置。

目前我有基础应用程序通过args传递配置文件的位置,因此可以根据需要使用它来调整它。它还通过交易进行进口,一切正常。

我担心每小时在同一个盒子上运行同一个.exe文件的20个实例可能会导致CPU最大化?

我该怎么做才能解决这个问题?线程会有帮助吗?

4 个答案:

答案 0 :(得分:3)

为什么不创建一个可以处理多个配置的实例?似乎更容易维护和控制。

答案 1 :(得分:2)

每个可执行文件都将在它自己的进程中运行,因此,它拥有自己的线程。根据每个任务的处理器密集程度,CPU可能会最大化,但这不一定需要关注。如果您担心并发加载,那么最好的方法可能是错开进程的调度,以便最少同时运行它们。

答案 2 :(得分:0)

不,这不是线程问题。

只需在应用程序开头创建一个系统范围的名为 Mutex。创建该Mutex时,查看它是否已存在。如果是,则表示您的应用程序的另一个实例正在运行。此时,您可以向用户发送消息(通过控制台或消息框),说明另一个实例已在运行,然后您可以终止该应用程序。

答案 3 :(得分:0)

我意识到这个线程已经很老了,但我的项目遇到了同样的问题。我建议使用MSMQ按顺序处理作业。