WinForm中 事件 委托 多线程的应用【以一个下载进度条为例】
生活随笔
收集整理的這篇文章主要介紹了
WinForm中 事件 委托 多线程的应用【以一个下载进度条为例】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
第一步:首先我們創建一個winfor的項目
第二步:我們建一個窗體
在一個窗體里面 打開一個另外的窗體 另外的窗體有一個按鈕 點擊后就開始下載 下載完成后 在注冊窗體上面 顯示下載完成(達到在一個窗體里面修改另外的一個窗體)
?第三步:完成下載窗體的進度條
private void button1_Click(object sender, EventArgs e){for (int i = 0; i <= 100; i++){this.progressBar1.Value = i;System.Threading.Thread.Sleep(300);}}第四步:處理窗體假死問題
(用到多線程和委托)
第五步:處理跨線程調用ui
線程間操作無效: 從不是創建控件“progressBar1”的線程訪問它。
?
第六步 主窗體添加委托 解決跨線程調用UI
public FormMain(){InitializeComponent();sif = ShowInfoFun;}public void ShowInfoFun(string text){this.label1.Text = text;}private void button1_Click(object sender, EventArgs e){FormLoad fl = new FormLoad();//在主窗體中注冊子窗體的事件fl.eventShowInfo += new FormLoad.ShowInfo(fl_eventShowInfo);fl.Show();}//事件的執行方法void fl_eventShowInfo(string text){this.label1.Invoke(sif, text);}//在主窗體這里 創建一個委托public delegate void ShowInfo(string text);public ShowInfo sif;}視頻下載地址:http://pan.baidu.com/share/link?shareid=1740683788&uk=540184145
需要源碼的可以到這里向樓主要:http://www.bamn.cn/redirect.php?tid=19&goto=lastpost#lastpost
轉載于:https://www.cnblogs.com/maijin/p/3246238.html
總結
以上是生活随笔為你收集整理的WinForm中 事件 委托 多线程的应用【以一个下载进度条为例】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jni 入门 android的C编程之旅
- 下一篇: hdu 3853 LOOPS 概率DP