winform程序 執行緒 TreeView遞迴載入

2022-07-16 22:57:27 字數 1476 閱讀 2378

程序:

一般來說,乙個程式就是乙個程序,不過也有乙個程式需要多個程序支援的情況。

程序所使用的類:process

所需命名空間:system.diagnostics;

可以通過進行來開啟計算機上現有的程式:

1、使用靜態方法start();但必須要知道程序名

2、也可以例項化物件,來呼叫start()普通方法,但呼叫普通方法之前需要給

startinfo屬性設定乙個物件,來通知它要開啟的是哪個程序(絕對路徑)

例:點選按鈕選擇檔案路徑,並顯示出來,點選第二個按鈕可開啟此程式

private

void button1_click(object

sender, eventargs e)

private

void button2_click(object

sender, eventargs e)

}

程序執行緒:

執行緒是程式中乙個單一的順序控制流程。乙個程式只有乙個主線程,winform中主線程就是控制窗體本身操作的,

如果要讓它去執行乙個需要一定時間才能完成的**,那此時窗體會卡住,出現假死狀態,

為了避免這種情況,就需要用到多執行緒。

建立執行緒物件:thread

執行緒需要執行乙個方法,而這個方法允許有乙個引數,並且這個引數必須是object型別的

程式預設不允許跨執行緒訪問物件,如果仍想訪問,需要在建構函式中寫上control.checkforillegalcrossthreadcalls = false;

執行緒預設開啟為前台執行緒,程式必須將所有的前台執行緒執行完畢後才會真正退出程式,所以一般都會將執行緒改為後台執行緒th.isbackground = true;

注:想讓執行緒去執行的功能必須封裝成方法

例:

public

form2()

private

void button1_click(object

sender, eventargs e)

private

static

void aaa(object

bbb)

(bbb

as button).enabled = true

; }

執行緒treeview遞迴載入:

遞迴就是在方法裡面呼叫這個方法本身,但由於執行效率不高,不是很常用

tag屬性:每個控制項都有,是使用者自定義內容,方便程式讀取某個物件使用

例:利用遞迴給treeview載入中國的地區,此處由於遞迴中重複開啟關閉資料庫查詢非常卡,所以只查詢全部,使用lambda表示式操作泛型集合實現

public

form1()

public

void

nodesbind(treenode tn)

}

遞迴載入

WinForm 程序,執行緒

一 程序 程序是乙個具有獨立功能的程式關於某個資料集合的一次執行活動。它可以申請和擁有系統資源,是乙個動態的概念,是乙個活動的實體。process 類,用來操作程序。命名空間 using system.diagnostics process.start calc 開啟計算器 process.star...

winform程序 執行緒

程序 一般來說,乙個程式就是乙個程序,不過也有乙個程式需要多個程序支援的情況。程序所使用的類 process 所需命名空間 system.diagnostics 可以通過進行來開啟計算機上現有的程式 1 使用靜態方法start 但必須要知道程序名 2 也可以例項化物件,來呼叫start 普通方法,但...

WinForm 程序和執行緒

一 程序 程序是乙個具有獨立功能的程式關於某個資料集合的一次執行活動。它可以申請和擁有系統資源,是乙個動態的概念,是乙個活動的實體。process 類,用來操作程序。命名空間 using system.diagnostics process.start calc 開啟計算器 process.star...