WinForm 程序和執行緒

2022-03-29 00:37:10 字數 3094 閱讀 2677

一、程序

程序是乙個具有獨立功能的程式關於某個資料集合的一次執行活動。

它可以申請和擁有系統資源,是乙個動態的概念,是乙個活動的實體。

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...