<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        深入淺析WinForm 進程、線程及區(qū)別介紹

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:36:35
        文檔

        深入淺析WinForm 進程、線程及區(qū)別介紹

        深入淺析WinForm 進程、線程及區(qū)別介紹:一、進程 進程是一個具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動。 它可以申請和擁有系統(tǒng)資源,是一個動態(tài)的概念,是一個活動的實體。 Process 類,用來操作進程。 命名空間:using System.Diagnostics; Process.Start(cal
        推薦度:
        導(dǎo)讀深入淺析WinForm 進程、線程及區(qū)別介紹:一、進程 進程是一個具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動。 它可以申請和擁有系統(tǒng)資源,是一個動態(tài)的概念,是一個活動的實體。 Process 類,用來操作進程。 命名空間:using System.Diagnostics; Process.Start(cal

        一、進程

        進程是一個具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動。

        它可以申請和擁有系統(tǒng)資源,是一個動態(tài)的概念,是一個活動的實體。

        Process 類,用來操作進程。

        命名空間:using System.Diagnostics;

        Process.Start("calc");   //打開計算器
        Process.Start("mspaint");   //打開畫圖
        Process.Start("iexplore" , "http://www.baidu.com");  //打開瀏覽器并指定地址

        (一)通過一個進程,打開指定的文件:

        1.創(chuàng)建進程對象

        Process p = new Process();

        2.創(chuàng)建一個StartInfo對象,是指定帶盤符的路徑。

        ProcessStartInfo psi = new ProcessStartInfo(@"C:\user\.....);

        3.進程指定及開始

        p.StartInfo = psi; //指定路徑
        p.Start(); //開始進程

        (二)通過文件選擇框讓用戶自己選擇所需要打開的程序并打開:

        private void button1_Click(object sender, EventArgs e)
        {
        //這是選擇文件的類型
        openFileDialog1.Filter = "應(yīng)用程序|*.exe";
        //顯示對話框并且判斷用戶有沒有選中文件
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
        //取文件路徑
        string path = openFileDialog1.FileName;
        //創(chuàng)建一個新的進程
        Process p = new Process();
        //制造進程的啟動信息
        ProcessStartInfo psf = new ProcessStartInfo(path);
        //設(shè)置該進程的執(zhí)行信息
        p.StartInfo = psf;
        //啟動進程
        p.Start();
        } 
        } 

        例子:注銷

        //這個path就是你要調(diào)用的exe程序的絕對路徑
        string path = Application.StartupPath;
        //獲取自身exe或dll的文件名路徑
        string s = System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName;
        private void button2_Click(object sender, EventArgs e)
        {
        //打開該程序
        //取該程序文件的路徑
        //string path = Application.StartupPath;
        string path = System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.FullyQualifiedName;
        //造一個進程
        Process p = new Process();
        //造一個進程的啟動信息
        ProcessStartInfo ps = new ProcessStartInfo(path);
        //設(shè)置進程啟動信息
        p.StartInfo = ps;
        //啟動進程
        p.Start();
        //關(guān)閉程序
        this.Close();
        } 

        例:窗口實現(xiàn)鼠標拖動

        private int x;
        private int y;
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
        //鼠標點擊時的XY坐標
        x = e.X;
        y = e.Y;
        }
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
        //判斷鼠標按下的是左鍵
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
        //邊距=當前的距離+移動的距離
        this.Left = this.Left+(e.X - x);
        this.Top = this.Top +(e.Y - y);
        }
        } 

        二、線程

        線程,有時被稱為輕量級進程(Lightweight Process,LWP),是程序執(zhí)行流的最小單元。

        區(qū)別:進程有自己獨立的資源,線程共用資源。

        Thread類, 命名空間:using System.Threading ;

        程序默認只有一個主線程,如果做復(fù)雜處理,則會出現(xiàn)假死狀態(tài),因為一條線程同時只能做一件事。

        多線程的作用:同時做多件事情,節(jié)約時間,后臺運行程序,提高程序的運行效率,也不會使主界面出現(xiàn)無響應(yīng)的情況。

        創(chuàng)建線程:

        開啟新的線程執(zhí)行哪個函數(shù) 

        Thread th = new Thread( 里面寫線程要操作的方法,方法名不含括號 ); 

        標記這個線程準備就緒了,可以隨時執(zhí)行,CPU決定執(zhí)行時間

          th.Start();

        線程分為兩種:

        前臺線程 - 只有所有的前臺線程都關(guān)閉才能完成程序關(guān)閉。

        后臺線程 - 只要所有的前臺線程都結(jié)束,后臺線程則會自動結(jié)束。

        兩者的區(qū)別:應(yīng)用程序必須運行完所有的前臺線程才可以退出;

             而對于后臺線程,應(yīng)用程序則可以不考慮其是否已經(jīng)運行完畢而直接退出,所有的后臺線程在應(yīng)用程序退出時都會自動

        結(jié)束。

        設(shè)置th線程為后臺線程 

        th . IsBackground = true ;

        控件由主線程創(chuàng)建,新線程想要訪問主線程資源,程序默認是不允許跨線程訪問的。

        取消跨線程訪問限制

        在界面Load事件里

          Control.CheckForIllegalCrossThreadCalls = false;

        FormClosing 事件中:

         //判斷新線程是否為null,如果為null,那就自動關(guān)閉了
          if(th != null)
          {
            //立即結(jié)束線程,但是結(jié)束后就不能再被重新Start了
            th.Abort(); 
          }

        執(zhí)行帶參數(shù)的函數(shù):

        如果線程執(zhí)行的方法需要參數(shù),那么要求這個參數(shù)必須是object類型!

        Thread th = new Thread(Test); //參數(shù)名不需要帶括號
          th . IsBackground = true;
          th.Start("123");         //在這里傳入Test函數(shù)所需要的參數(shù)

        這樣函數(shù)中就需要強轉(zhuǎn):

         private void Test (object s)
          {
            string ss = (string) s ;
            ......
          }

        以上所述是小編給大家介紹的WinForm 進程、線程及區(qū)別介紹,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        深入淺析WinForm 進程、線程及區(qū)別介紹

        深入淺析WinForm 進程、線程及區(qū)別介紹:一、進程 進程是一個具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動。 它可以申請和擁有系統(tǒng)資源,是一個動態(tài)的概念,是一個活動的實體。 Process 類,用來操作進程。 命名空間:using System.Diagnostics; Process.Start(cal
        推薦度:
        標簽: 進程 線程 winform
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 一个人免费视频在线观看www | 直接进入免费看黄的网站| 无码人妻精品中文字幕免费 | heyzo亚洲精品日韩| 亚洲avav天堂av在线网毛片| 精品剧情v国产在免费线观看| 亚洲精品中文字幕麻豆| 91成人在线免费视频| 亚洲欧洲日本精品| 最新欧洲大片免费在线| 亚洲精品中文字幕| 国产亚洲综合成人91精品| 国产伦精品一区二区免费| 国产偷v国产偷v亚洲高清| 人妻无码久久一区二区三区免费| 亚洲综合另类小说色区| 亚洲乱码在线观看| 日本二区免费一片黄2019| 黄页视频在线观看免费| 中文字幕人成人乱码亚洲电影| 亚洲视频在线免费| 亚洲尹人香蕉网在线视颅| 毛片免费观看视频| 污污污视频在线免费观看| 麻豆一区二区免费播放网站| 亚洲综合图色40p| 99爱视频99爱在线观看免费| 国产精品亚洲片夜色在线| 四虎永久免费地址在线网站| 国产在线精品一区免费香蕉| 免费在线黄色网址| 亚洲中文字幕久久无码| 亚洲国产天堂久久久久久| 国产精品免费福利久久| 亚洲AV日韩综合一区尤物| 亚洲熟女少妇一区二区| 亚洲国产高清视频| 亚洲欧洲日产国码二区首页| 亚洲精品国产情侣av在线| 久久精品国产亚洲av瑜伽| 美丽姑娘免费观看在线观看中文版|