一、进程
1、进程类是指 Process 类,该类所在的命名空间是 System.Diagnostics。快捷键应用:alt+shift+f10
2、进程是操作系统资源分配的基本单位。每一个应用程序都是进程。
3、在获取当前操作系统中运行的进程时,如果要获取所有运行的进程的信息可以使用 GetProcesses() 方法
来打开电脑中的应用程序 如:qq、微信、计算器等等
4、需要注意的是,一些进程由于权限不够是无法关闭的,因此在关闭进程的代码中要做异常处理。
5、Process 类的常用属性和方法如下表所示。
属性或方法 | 说明 |
---|---|
MachineName | 属性,获取关联进程正在其上运行的计算机的名称 |
Id | 属性,获取关联进程的唯一标识符 |
ExitTime | 属性,获取关联进程退出的时间 |
ProcessName | 属性,获取该进程的名称 |
StartTime | 属性,获取关联进程启动的时间 |
Threads | 属性,获取在关联进程中运行的一组线程 |
TotalProcessorTime | 属性,获取此进程的总的处理器时间 |
UserProcessorTime | 属性,获取此进程的用户处理器时间 |
Close() | 方法,释放与此组件关联的所有资源 |
CloseMainWindow() | 方法,通过向进程的主窗口发送关闭消息来关闭拥有用户界面的进程 |
Dispose() | 方法,释放由 Component 使用的所有资源 |
GetCurrentProcess() | 方法,获取新的 Process 组件,并将其与当前活动的进程关联 |
GetProcesses() | 方法,为本地计算机上的每个进程资源创建一个新的 Process 组件 |
GetProcesses(String) | 方法,为指定计算机上的每个进程资源创建一个新的 Process 组件 |
GetProcessesByName(String) | 方法,创建新的 Process 组件的数组,并将它们与本地计算机上共享指定的进程名称的所有进程资源关联 |
Kill() | 方法,立即停止关联的进程 |
Start() | 方法,启动(或重用)此 Process 组件的 Startinfo 属性指定的进程资源, 并将其与该组件关联 |
Start(String) | 方法,通过指定文档或应用程序文件的名称来启动进程资源,并将资源与新的 Process 组件关联 |
二、线程(Thread)
1、线程是任务调度和执行的基本单位
2、线程(Thread)是包含在进程中的,它位于 System.Threading 命名空间中。
3、包含关系: 进程由多个线程组成 ,没有线程的进程可以看做是单线程的。如果一个进程内有多个线程,则执行过程不是一条的,而是多条线(线程)共同完成;
线程是进程的一部分,所以线程被为轻权进程或者轻量级线程
4、线程分为前台线程和后台线程、
(1)前台线程:只有所有的前台线程都才能完成程序关闭
主线程;默认创建线程 是前台线程;需要用 th.IsBackground = true;//将线程设为后台线程
(2)后台线程;只要所有的前台线程结束,后台线程自动结束
5、Thread 类主要用于实现线程的创建以及执行,其常用的属性和方法如下表所示。
属性或方法 | 说明 |
---|---|
Name | 属性,获取或设置线程的名称 |
Priority | 属性,获取或设置线程的优先级 |
ThreadState | 属性,获取线程当前的状态 |
IsAlive | 属性,获取当前线程是否处于启动状态 |
IsBackground | 属性,获取或设置值,表示该线程是否为后台线程 |
CurrentThread | 属性,获取当前正在运行的线程 |
Start() | 方法,启动线程 |
Sleep(int millisecondsTimout) | 方法,将当前线程暂停指定的毫秒数 |
Suspend() | 方法,挂起当前线程(已经被弃用) |
Join() | 方法,阻塞调用线程,直到某个线程终止为止 |
Interrupt() | 方法,中断当前线程 |
Resume() | 方法,继续已经挂起的线程(已经被弃用) |
Abort() | 方法,终止线程 |