我的系统中有以下代码。
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());
}
}
程序从进程列表中获取记事本并结束它。
我的问题是,如果记事本没有运行,我会收到此错误。
我知道它告诉了什么但是我似乎无法正确地检查代码运行if语句,检查记事本是否正在运行以及是否运行不是不关闭。
答案 0 :(得分:2)
IndexOutOfRangeException将在此步骤中出现: 处理NotepadProc = procs [0];
您可以查看列表的长度。
示例:
if(procs.Length == 0)
return;
或
if(procs.Length > 0)
{
your code
}