為了讓程式盡快響應使用者操作,在開發windows應用程式時經常會使用到執行緒。對於耗時的操作如果不使用執行緒將會是ui介面長時間處於停滯狀態,這種情況是使用者非常不願意看到的,在這種情況下我們希望使用執行緒來解決這個問題。
簡單貼出幾種處理情況的**,慢慢琢磨吧!
[csharp]view plain
copy
using
system;
using
system.collections.generic;
using
system.componentmodel;
using
system.data;
using
system.drawing;
using
system.linq;
using
system.text;
using
system.windows.forms;
using
system.threading;
namespace
threadpooldemo
private
void
btnthread_click(
object
sender, eventargs e)
//使用執行緒來直接設定進度條
private
void
run()
}
private
void
btninvoke_click(
object
sender, eventargs e)
//使用invoke方法來設定進度條
private
void
runwithinvoke()
else
}
}
//跟setprogressbarvalue委託相匹配的方法
private
void
setprogressvalue(
intvalue)
private
void
btnbackgroundworker_click(
object
sender, eventargs e)
//當事件處理完畢後執行的方法
void
worker_runworkercompleted(
object
sender, runworkercompletedeventargs e)
//當工作進度發生變化時執行的事件處理方法
void
worker_progresschanged(
object
sender, progresschangedeventargs e)
//開始啟動工作時執行的事件處理方法
void
worker_dowork(
object
sender, doworkeventargs e)
}
//使用system.windows.forms.timer來操作介面能
private
void
btntimer_click(
object
sender, eventargs e)
//timer中要定期執行的方法
void
timer_tick(
object
sender, eventargs e)
}
}
}
多執行緒與UI操作
什麼是ui執行緒?所有的 net framework 應用程式都是使用單執行緒建立的,單執行緒用於執行該應用程式,在.net winform開發中,這樣的執行緒建立並管理使用者介面 ui 因而稱為 ui 執行緒。什麼是ui假死?當winfrom程式在執行乙個長時間耗時的任務時,應用程式出現不能點選 ...
C 多執行緒間操作UI
通過設定ui控制項的invoke和begininvoke方法實現更新,如下 1 public partial class fifth form28 private void settext string text 912 13private void fifth load object sender...
C 多執行緒與UI響應
一 概述 在使用c 進行應用程式設計時,經常會採用多執行緒的方式進行一些後台任務的工作。對於不同的應用場景,使用的策略也不盡相同。1.後台迴圈任務,少量ui更新 例如批量上傳檔案,並提供進度。這種情況使用backgroundworker元件是非常好的選擇。2.耗時的後台任務 這裡的耗時任務是指乙個時...