c#學習筆記——進程(process)與線程(thread)

1、進程數組

一、進程類是指 Process 類,該類所在的命名空間是 System.Diagnostics。快捷鍵應用:alt+shift+f10微信

二、進程是操做系統資源分配的基本單位。每個應用程序都是進程。spa

三、在獲取當前操做系統中運行的進程時,若是要獲取全部運行的進程的信息可使用 GetProcesses() 方法操作系統

來打開電腦中的應用程序 如:qq、微信、計算器等等線程

四、須要注意的是,一些進程因爲權限不夠是沒法關閉的,所以在關閉進程的代碼中要作異常處理。進程

 

五、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 組件關聯文檔

 

 2、線程(Thread)it

一、線程是任務調度和執行的基本單位io

二、線程(Thread)是包含在進程中的,它位於 System.Threading 命名空間中。

三、包含關係: 進程由多個線程組成 ,沒有線程的進程能夠看作是單線程的。若是一個進程內有多個線程,則執行過程不是一條的,而是多條線(線程)共同完成;

線程是進程的一部分,因此線程被爲輕權進程或者輕量級線程

四、線程分爲前臺線程和後臺線程、

(1)前臺線程:只有全部的前臺線程都才能完成程序關閉

主線程;默認建立線程 是前臺線程;須要用  th.IsBackground = true;//將線程設爲後臺線程
          

(2)後臺線程;只要全部的前臺線程結束,後臺線程自動結束

五、Thread 類主要用於實現線程的建立以及執行,其經常使用的屬性和方法以下表所示。

屬性或方法 說明
Name 屬性,獲取或設置線程的名稱
Priority 屬性,獲取或設置線程的優先級
ThreadState 屬性,獲取線程當前的狀態
IsAlive  屬性,獲取當前線程是否處於啓動狀態
IsBackground 屬性,獲取或設置值,表示該線程是否爲後臺線程
CurrentThread 屬性,獲取當前正在運行的線程
Start()  方法,啓動線程
Sleep(int millisecondsTimout) 方法,將當前線程暫停指定的毫秒數
Suspend() 方法,掛起當前線程(已經被棄用)
Join() 方法,阻塞調用線程,直到某個線程終止爲止
Interrupt() 方法,中斷當前線程
Resume() 方法,繼續已經掛起的線程(已經被棄用)
Abort() 方法,終止線程
相關文章
相關標籤/搜索