C#使用多线程或作为单独的应用程序运行?

时间:2013-06-26 13:02:30

标签: c#

我有一个Windows应用程序,它从数据库中读取并根据用户选择的项目填充多个Listview容器。特定Listview中的某些数据可右键单击,并具有“将数据写入Excel”的MenuItem选项。这可能需要大约10分钟才能完成。

我的Excel Interop部分是用独立代码编写的,或者我可以将它合并到应用程序项目中。 Excel Interop应用程序只需要1个参数就可以完成它。

我的问题是......我应该将它合并到Windows应用程序中并使用多线程或将其作为独立应用程序运行(这看起来更有效),这是从Windows应用程序调用的吗?什么是在Windows应用程序启动过程中执行此操作的好方法,然后可以忘记它。

3 个答案:

答案 0 :(得分:3)

我认为这个问题的答案可以通过以下问题得到解答:“如果用户在10分钟内关闭主应用程序会发生什么?”

如果文件仍然应该被写入,那么独立的应用程序是完美的,因为你的线程将无法生存。

如果文件创建应该被中断,那么我认为没有理由不使用多线程,因为默认情况下这似乎更简单,特别是调试这部分代码如果在同一个应用程序中则更容易。

答案 1 :(得分:0)

我建议以下流程:

  1. 我们可以创建自己的队列,该队列将在数据库或文件系统中维护。
  2. 然后我们可以编写一个调度程序,它将获取所有未处理的请求,并在响应时标记排队项目的适当状态。
  3. 现在你的应用程序可以调用排队过程并从那里继续前进。

答案 2 :(得分:0)

使用另一个线程来编写它。