【问题标题】:Run Process.Start() on a background thread? [duplicate]在后台线程上运行 Process.Start()? [复制]
【发布时间】:2023-03-07 16:16:01
【问题描述】:

可能重复:
How do I start a process with idle priority in .Net

如何在后台线程上运行 Process.Start 并赋予它高优先级?我在一个 wpf C# 应用程序中。 谢谢

【问题讨论】:

  • 线程不能包含进程。
  • 线程可以启动进程就好了,但你说他们不能包含进程是对的。
  • 为什么需要在后台线程中启动它?启动一个进程是非阻塞的;根本不需要很长时间。您可能可以从非后台线程执行此操作而不会出现任何问题。

标签: c#


【解决方案1】:

开始一个进程

Process.Start() 

然后在启动后设置 PriorityClass。

关于从线程启动进程见此链接:Async process start and wait for it to finish

   ThreadPool.QueueUserWorkItem(delegate {
        Process process = Process.Start(startInfo);
        if(process.WaitForExit(timeout)) {
            // user exited
        } else {
            // timeout
        }
    });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    相关资源
    最近更新 更多