c# - 在 C# 中启动外部应用程序时是否使用线程

标签 c# multithreading external-process

我正在创建一个监视 ftp 日志的 win 服务,当文件上传后,我想启动一个外部应用程序(如 powershell 脚本)来处理该文件。我的问题是,当我这样做时,我是否想将其转移到另一个线程中,或者我应该等到它完成后再继续。

这个进程已经在一个线程中(该服务将监视多个服务器),并且线程启动线程的想法让我担心。这是值得担心的事情还是我帽子里的锡纸太多了。

最佳答案

好吧,以模块化方式编码,不用担心线程。如果以后您发现您的应用程序将从多线程方法中受益,那么就解决它。如果您正交构建组件,那么线程部分会更自然地配合。

在应用程序的一开始就解决线程问题对我来说总是感觉像是过早的优化。首先构建组件,然后再考虑如何对它们进行线程化。

[编辑]我绝不建议您完全不要考虑线程。每个组件都需要构建为具有可供多个线程使用的潜力——这在所有应用程序中都是一种防御性且明智的做法。我的意思是不要太担心应用程序将如何处理线程以及如何首先设置应用程序的线程管理。

关于c# - 在 C# 中启动外部应用程序时是否使用线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/517166/

相关文章:

c# - 关于C#中查找Enum成员的问题

c# - 在 C# 中的 Parallel.For 中调用 native dll 会抛出 System.AccessViolationException

c# - WPF 绑定(bind)标签内容与类参数

java - 如何从 Java 应用程序中与 C 控制台应用程序交互

c++ - 在 Tiny Process Library 中阻塞直到进程结束

php - 使用 php 执行外部程序(如 skype.exe)

c# - 如何在代码中添加循环,以便代码继续运行,直到用户输入 '!' ?

java - 为什么我的 TimerTask 会出现此错误?

python多处理共享队列重新排序

java - 在java中使用两个线程有​​效地打印奇数和偶数?