如何忽略win32exception? 模块过程

我试图创建以查看加载过程中的DLL。 但是在使用system.dll获取进程时遇到错误。 它抛出错误信息:

System.ComponentModel.Win32Exception:’无法枚举进程模块。’

using System; using System.Diagnostics; using System.Threading; namespace dll { class Program { static void Main(string[] args) { Process[] processlist = Process.GetProcesses(); foreach (Process process in processlist) { foreach (ProcessModule module in process.Modules) { if (module.FileName.Contains("foo.dll")) { Console.WriteLine(module.FileName); Console.ReadLine(); } } } } } } 

这是什么? 怎么解决这个问题?

这将忽略通过访问process.Modules抛出的exception。

 public IEnumerable GetProcessFileName(string searchBy) { foreach(var process in Process.GetProcesses()) { try{ var p = process.Modules.Cast() .Where(m => m.FileName.Contains(searchBy)) .Select(x => x.FileName); return p; } catch(Exception e){ //write to log //Console.Write(e); } } return Enumerable.Empty(); }