代码之家  ›  专栏  ›  技术社区  ›  Bob The Janitor

在C中启动外部应用程序时执行线程或不执行线程#

  •  2
  • Bob The Janitor  · 技术社区  · 17 年前

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

    4 回复  |  直到 17 年前
        1
  •  2
  •   Andrew Hare    17 年前

    好吧,用模块化的方式编写代码,不用担心线程。如果在将来,您发现您的应用程序将受益于多线程方法,那么请解决它。如果您以正交方式构建组件,则螺纹部分将更自然地适合。

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

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

        2
  •  1
  •   Michael Meadows    17 年前

    ThreadPool .

        3
  •  1
  •   Max Schmeling    17 年前

    首要问题:你需要知道这个过程的结果吗?如果你能开枪然后忘记,那么就这么做吧——这更容易。如果你需要结果,那么等待它。

    另外,您是否考虑过使用FileSystemWatcher?它可以远程工作。

        4
  •  1
  •   Scott Weinstein    17 年前

    最小的 例子:

    using System.Management.Automation;
    static class PoshExec
    {
        static void Exec(string scriptFilePath)
        {
            (new RunspaceInvoke()).Invoke("& " + scriptFilePath);
        }
    }
    

    c:\Program Files\Reference Assembly\Microsoft\WindowsPowerShell\v1.0\System.Management.Automation.dll