程序:乙個程式就是乙個程序,也有可能乙個程式需要多個程序來支援的情況,比如qq
點選按鈕開啟記事本,靜態方法
public點選開啟記事本partial
class
form3 : form
//點選開啟記事本
private
void button1_click(object
sender, eventargs e)
}
引用新的命名空間:using system.diagnostics; 新的類:process;(李獻策lxc)
如何製作乙個開啟應用程式的程式?也可以例項化物件,來呼叫start()普通方法
但呼叫普通方法之前,需要給startinfo屬性設定乙個物件,來通知他要開啟哪個程序(李獻策lxc)
//選擇應用程式
private
void button1_click(object
sender, eventargs e)
}//開啟程式
private
void button2_click(object
sender, eventargs e)
}執行選定的應用程式
執行緒:乙個程序就像是乙個公司,這個公司預設只有乙個老闆,老闆叫做主線程,預設幫使用者操作窗體,或者很快的其他操作
但如果首席執行官時間的操作,比如每隔一秒列印乙個數字,此時主線程在執行迴圈,使用者是無法操作窗體的
乙個執行緒同一時間只能做一件事,程式一旦讓他去執行一段需要時間的**那麼就會出現程式假死,失去控制
原因是:執行緒同一時間只能做一件事,而主線程是操作窗體控制的一旦被占用,那麼窗體就沒有人控制了(李獻策lxc)
解決辦法:
招乙個員工幫老闆幹活
先把要執行的**提取成乙個方法,是乙個完整的流程
點選按鈕開始執行
public建立執行緒form3()
//點選執行
private
void button1_click(object
sender, eventargs e)
//要執行的程式**,提取成方法
private
static
void
aaa()}}
可以同時建立多個執行緒(李獻策lxc)
執行緒需要執行乙個方法,而這個方法允許有乙個引數,並且這個引數必須是object型別
publicpartial
class
form3 : form
//點選執行
private
void button1_click(object
sender, eventargs e)
//要執行的程式**,提取成方法
程式預設不允許跨執行緒訪問物件,因為監控開著,需要關閉監控
建立的執行緒是無法訪問主線程的內容、控制項的,需要結構函式中改變屬性值即可(李獻策lxc)
執行緒預設開啟為前台執行緒,程式必須將所有的前台執行緒執行完畢後才會真正退出程式
解決辦法:將執行緒變為後台執行緒,主窗體一關,後台執行緒全部關閉
(李獻策lxc)
c winform中多執行緒的使用
其實我主要就打算記錄兩個點。第乙個是關於大量任務下窗體的等待效果,或者說人機互動的友好性。關於這一點,我在網上也搜了相關的資料,但是發現都寫的大同小異。所以本文以乙個例子為基礎,整理出乙個彈框進度條提示的效果案例。同時我個人覺得這個案例的擴充套件和 簡潔性相對較好。廢話不多說,直接擼 如下圖所示的,...
C WinForm跨執行緒修改UI介面
在我做winform開發的過程中,經常會遇到耗時操作或阻塞操作。他們會引發軟體的卡頓甚至假死,嚴重影響軟體的使用。因此,這類耗時或阻塞的操作一般都會使用非同步的方式去執行,不影響主線程 ui執行緒 與使用者間的互動。但多個執行緒競爭讀寫同乙個資源往往會造成意想不到的意外結果,ui介面也是一種資源,所...
C winform中UI執行緒與工作執行緒的互動
c winform中ui執行緒與工作執行緒的互動 1.使用多執行緒 void calcpi int digits void calcbutton click object sender,eventargs e void calcpithreadstart object digits 2.在ui執行緒...