进程
进程是对一段静态指令序列(程序)的动态执行过程。
与进程相关的信息包括:进程标示(进程ID)、文件名、执行的程序和数据,运行时间、在存储器中的位置、占用的内存容量等。
在NET Framewrok 中Process 类提供了对进程进行管理的各种方法
线程
将一个进程划分为若干个独立的执行流,每一个执行流均称为一个线程。
(1)线程是CPU调度和分配的基本单位。
(2)每个进程都有一个主线程。
(3)除了主线程以外,还可以给一个进程分配若干个子线程,从而达到多个任务并行执行的目的。
任何一个C#程序都有一个默认的线程,该线程成为主线程。主线程执行程序中Main方法中的代码。Main方法中的每一条语句都由主线程执行,当Main返回时,主线程也自动终止。
进程管理(Process类)
- Process类位于System.Diagnostics命名空间下。
- 对本机(也叫本地计算机)
(1)可以启动、终止某个进程
(2)可以查看进程相关信息,如CPU利用率等
(3)可以查看进程工作状态 - 对远程计算机
(1)可以查看远程计算机相关信息
(2)无法直接启动、终止远程计算机 - 在一个程序中处理其他的程序(例如调用其他.exe文件、 快捷方式等),实际上就是对进程进行管理。
Process类提供的静态方法
image.pngProcess类常用的属性和方法
-----------------------获取进程实例-------------------
GetProcessById方法(静态方法):通过进程Id创建新的Process组件,并将其与本地计算机上的进程资源关联。GetProcessById最多只有一个Process实例。
GetProcesses方法(静态方法):获取本机所有进程
GetProcessesByName方法(静态方法):获取本机上特定名称的进程
-----------------------获取及设置优先级---------------
BasePriority属性: 获取进程优先级(只读)
PriorityClass 属性:设置或更改进程优先级
---------------------------进程ID及进程名-----------------------
Id属性:获取关联进程的唯一标识符
ProcessName属性:获取该进程的名称,不包括路径和扩展名
---------------------------进程其他信息-------------------------
MachineName属性:获取关联进程正在其上运行的计算机名称
MainModule属性:获取关联进程的主模块
Modules属性:获取由关联进程加载的模块
TotalProcessorTime属性:获取进程的总的处理器时间
StartTime属性:获取关联进程的启动时间
WorkingSet64属性:为进程分配的物理内存量(字节数)
-----------------------进程启动-------------------------
Start方法:启动进程资源并将其与Process组件关联
StartInfo属性:获取或设置要传递给启动进程的文件名以及启动参数
-----------------------进程终止-------------------------
Kill方法:强制终止进程
CloseMainWindow方法:关闭具有用户界面的进程
Close方法:释放与此组件关联的所有资源
HasExited属性:指示关联进程是否已终止
WaitForExit方法:设置等待关联进程退出的时间,并在该段时间结束前或该进程退出前,阻止当前线程执行。
网友评论