小屋創作

日誌2016-12-27 22:27

C# 執行緒的使用

作者:貓貓風 ฅ●ω●ฅ

.

















執行緒的主要目的就是可以同步處理許多程序,不會讓CPU為了等待或處理某項程序而卡住,造成資源的浪費甚至衍生其他問題
 
用法首先就是加入backgroundWorker 元件,然後選定要觸發的事件,主要分成三部分:
backgroundWorker_DoWork 定義執行緒內要做的事情
backgroundWorker_ProgressChanged定義執行時UI的變更
backgroundWorker_RunWorkerCompleted定義完成時要顯示的內容或動作
Example:
定義一個按鈕將要執行的動作給執行緒處理
int _file_count=0;
private void btnLoadData_Click(object sender, EventArgse)
{
     backgroundWorker1.RunWorkerAsync();//移到執行緒執行        
}
//定義執行緒要做的動作
private void backgroundWorker1_DoWork(object sender,DoWorkEventArgs e)
{
progressBar1.Minimum = 0;
progressBar1.Maximum = 100;
foreach (stringfname in System.IO.Directory.GetFileSystemEntries("d:\\sample"))
  {                 
    //調用ProgressChanged改變form元件數值 否則無法跨執行緒執行
    backgroundWorker1.ReportProgress(_file_count);
_file_count++;
  }
}
//檔要刷UI時調用此方法
private void backgroundWorker1_ProgressChanged(objectsender, ProgressChangedEventArgs e)
{
     progressBar1.Visible= true;
     // e.ProgressPercentage為剛剛傳入的參數
     progressBar1.Value= ((int)e.ProgressPercentage); //計算執行百分比
     //更新progressBar
    lb_progress_value.Text="載入完成率"+progressBar1.Value.ToString()+" %";
}
//當執行緒完成時
private voidbackgroundWorker1_RunWorkerCompleted_1(object sender,RunWorkerCompletedEventArgs e)
{
  if(_ok)
   {
          MessageBox.Show("載入完畢");  //顯示訊息
   }
         //隱藏progressBar
          progressBar1.Visible= false;
          lb_progress_value.Visible= false;
}


8

4

LINE 分享

相關創作

原神 序章 長杓之章 小狼之章 夜梟之章 沙漏之章 第一幕攻略

原神 璃月篇 全劇情攻略

原神 璃月篇 OVA 重建群玉閣 (間章 第一幕 風起鶴歸)

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】