c#学习笔记——进程(process)与线程(thread)

一、进程

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() 方法,终止线程

猜你喜欢

转载自www.cnblogs.com/AmbitionBoy/p/12000070.html