在Windows 8.1上,您进入任务管理器并检查进程列表,有两个列表: - 一个用于"应用程序",它们是可见的前景应用程序 - 一个用于"后台进程",它们是在后台运行的进程
我的最终目标是计算加载应用程序所需的时间。当应用程序仍在加载时,它会出现在"后台进程"中。但是,一旦加载,它就会显示在" Apps"中。这将是我对应用程序整理加载的标准。
我正在使用System.Diagnostics.Process对象来尝试实现此目的。但是,我正在努力想出一种方法来区分"背景流程"以及" Apps"。
下的流程有没有人知道如何区分这个?我查看了MSDN并尝试了不同的方法,但都没有成功。
答案 0 :(得分:6)
当进程没有UI(即后台进程)时,属性System.Diagnostics.Process.MainWindowHandle为零。
答案 1 :(得分:1)
通常,如果进程是“App”,它应该有自己的窗口名称,否则,它是“后台应用程序”。因此代码应该如下:
Process[] arrProcess = Process.GetProcesses();
foreach (Process process in arrProcess)
{
if (!string.IsNullOrEmpty(process.MainWindowTitle))
{
//Do something with your App
}
else
{
//Do something with your Background process
}
}
答案 2 :(得分:0)
服务通常也由SYSTEM用户创建 - 列"用户名"在任务经理。