一、程序
程序是乙個具有獨立功能的程式關於某個資料集合的一次執行活動。
它可以申請和擁有系統資源,是乙個動態的概念,是乙個活動的實體。
process 類,用來操作程序。
命名空間:using system.diagnostics;
process.start("calc");//開啟計算器
process.start("mspaint");//開啟畫圖
process.start("iexplore" , "");//開啟瀏覽器並指定位址
(一)通過乙個程序,開啟指定的檔案:
1.建立程序物件
process p = new process();
2.建立乙個startinfo物件,是指定帶碟符的路徑。
processstartinfo psi = new processstartinfo(@"c:\user\.....);
3.程序指定及開始
p.startinfo = psi; //指定路徑
p.start(); //開始程序
(二)通過檔案選擇框讓使用者自己選擇所需要開啟的程式並開啟:
private void button1_click(object sender, eventargs e)}
例子:登出
//這個path就是你要呼叫的exe程式的絕對路徑
//獲取自身exe或dll的檔名路徑
string s =system.reflection.assembly.getexecutingassembly().manifestmodule.fullyqualifiedname;
private void button2_click(object sender, eventargs e)
例:視窗實現滑鼠拖動
private int x;private int y;
private void picturebox1_mousedown(object sender, mouseeventargs e)
private void picturebox1_mousemove(object sender, mouseeventargs e)
}
二、執行緒
執行緒,有時被稱為輕量級程序(lightweight process,lwp),是程式執行流的最小單元。
區別:程序有自己獨立的資源,執行緒共用資源。
thread類, 命名空間:using system.threading ;
程式預設只有乙個主線程,如果做複雜處理,則會出現假死狀態,因為一條執行緒同時只能做一件事。
多執行緒的作用:同時做多件事情,節約時間,後台執行程式,提高程式的執行效率,也不會使主介面出現無響應的情況。
建立執行緒:
開啟新的執行緒執行哪個函式
thread th = new thread( 裡面寫執行緒要操作的方法,方法名不含括號 );
標記這個執行緒準備就緒了,可以隨時執行,cpu決定執行時間
th.start();
執行緒分為兩種:
前台執行緒- 只有所有的前台執行緒都關閉才能完成程式關閉。
後台執行緒- 只要所有的前台執行緒都結束,後台執行緒則會自動結束。
兩者的區別:應用程式必須執行完所有的前台執行緒才可以退出;
而對於後台執行緒,應用程式則可以不考慮其是否已經執行完畢而直接退出,所有的後台執行緒在應用程式退出時都會自動結束。
設定th執行緒為後台執行緒
th . isbackground = true ;
控制項由主線程建立,新執行緒想要訪問主線程資源,程式預設是不允許跨執行緒訪問的。
取消跨執行緒訪問限制
在介面load事件裡
control.checkforillegalcrossthreadcalls = false;
formclosing 事件中:
//判斷新執行緒是否為null,如果為null,那就自動關閉了
if(th != null)
執行帶引數的函式:
如果執行緒執行的方法需要引數,那麼要求這個引數必須是object型別!
thread th = new thread(test); //引數名不需要帶括號
th . isbackground = true;
th.start("123"); //在這裡傳入test函式所需要的引數
這樣函式中就需要強**
private void test (object s)
winform(程序和執行緒)
一 程序 需要有用process類 用法一 process.start calc 不好用 該方法弊端 有許多程式不知道它的執行名字到底是什麼,如果寫錯了,就會出現程式崩潰錯誤 用法二 例項化程序類 process p new process 建立程序開啟路徑物件 processstartinfo p...
WinForm 程序和執行緒
程序 程序用到的類process,需要進行解析 using system.diagnostics process.start calc process是非靜態方法,括號裡面是要開啟的程序的名字 靜態方法與非靜態方法區別 靜態方法不用例項化物件,直接可以點出裡面的方法 弊端 有許多程式不知道它的執行名...
WinForm 程序,執行緒
一 程序 程序是乙個具有獨立功能的程式關於某個資料集合的一次執行活動。它可以申請和擁有系統資源,是乙個動態的概念,是乙個活動的實體。process 類,用來操作程序。命名空間 using system.diagnostics process.start calc 開啟計算器 process.star...