首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何知道进程是否正在运行?

如何知道进程是否正在运行?
EN

Stack Overflow用户
提问于 2008-11-04 16:13:09
回答 11查看 267.5K关注 0票数 180

当我获得对System.Diagnostics.Process的引用时,我如何知道某个进程当前是否正在运行?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-11-04 16:14:32

这是一种使用名称执行此操作的方法:

代码语言:javascript
复制
Process[] pname = Process.GetProcessesByName("notepad");
if (pname.Length == 0)
  MessageBox.Show("nothing");
else
  MessageBox.Show("run");

您可以循环所有进程以获取ID,以便稍后进行操作:

代码语言:javascript
复制
Process[] processlist = Process.GetProcesses();
foreach(Process theprocess in processlist){
   Console.WriteLine("Process: {0} ID: {1}", theprocess.ProcessName, theprocess.Id);
}
票数 285
EN

Stack Overflow用户

发布于 2008-11-06 11:47:29

这是我在使用反射器后发现的最简单的方法。为此,我创建了一个扩展方法:

代码语言:javascript
复制
public static class ProcessExtensions
{
    public static bool IsRunning(this Process process)
    {
        if (process == null) 
            throw new ArgumentNullException("process");

        try
        {
            Process.GetProcessById(process.Id);
        }
        catch (ArgumentException)
        {
            return false;
        }
        return true;
    }
}

Process.GetProcessById(processId)方法调用ProcessManager.IsProcessRunning(processId)方法,并在进程不存在的情况下抛出ArgumentException。由于某些原因,ProcessManager类是内部的……

票数 32
EN

Stack Overflow用户

发布于 2008-11-04 16:57:34

同步解决方案:

代码语言:javascript
复制
void DisplayProcessStatus(Process process)
{
    process.Refresh();  // Important


    if(process.HasExited)
    {
        Console.WriteLine("Exited.");
    }
    else
    {
        Console.WriteLine("Running.");
    } 
}

异步解决方案:

代码语言:javascript
复制
void RegisterProcessExit(Process process)
{
    // NOTE there will be a race condition with the caller here
    //   how to fix it is left as an exercise
    process.Exited += process_Exited;
}

static void process_Exited(object sender, EventArgs e)
{
   Console.WriteLine("Process has exited.");
}
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/262280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档