killprocess类的语法错误

时间:2014-05-06 13:46:09

标签: c# process

我的系统中有以下代码。

 private void killprocess()
    {
        Process[] procs = null;
        try
        {
            procs = Process.GetProcessesByName("notepad");
            Process NotepadProc = procs[0];
            if (!NotepadProc.HasExited)
            {
                NotepadProc.Kill();
            }
            else if (procs != null)
                foreach (Process p in procs)
                {
                    p.Dispose();
                }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }

程序从进程列表中获取记事本并结束它。 我的问题是,如果记事本没有运行,我会收到此错误。 enter image description here

我知道它告诉了什么但是我似乎无法正确地检查代码运行if语句,检查记事本是否正在运行以及是否运行不是不关闭。

1 个答案:

答案 0 :(得分:2)

IndexOutOfRangeException将在此步骤中出现: 处理NotepadProc = procs [0];

您可以查看列表的长度。

示例:

if(procs.Length == 0)
   return;

if(procs.Length > 0)
{
   your code
}