WPF、WinForm(C#)多线程编程并更新界面(UI)
2012-07-30 11:11
561 查看
这几天又开始折腾多线程了,久了不用又忘记了,为防止忘记,特收藏一个精典示例,原文出自论坛,适用于WinForm。但WPF略有不同,特在文中增加一行,已备注。
原文:http://topic.csdn.net/u/20101206/18/2bc62315-2e58-47a9-97be-107710592ab8.html?r=70399587
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Linq; using System.Windows.Forms; using System.Threading; namespace doWorker { public partial class Form1 : Form { delegate void MyDelegate(int value); Thread t; int i = 0; public Form1() { InitializeComponent(); } // 在新的线程中做“需要长时间做的”工作 private void button1_Click(object sender, EventArgs e) { t = new Thread(doWork); t.Start(); } // 要长时间做的工作 void doWork() { MyDelegate d = new MyDelegate(setValue); while (true) { ++i; //---WinForm-- this.Invoke(d, i); //----WPF---added by wonsoft.cn--- this.Dispatcher.Invoke(d, i); Thread.Sleep(100); } } // 更新用户界面 void setValue(int value) { label1.Text = value.ToString(); } // 终止线程的执行 private void button2_Click(object sender, EventArgs e) { t.Abort(); } } }
原文:http://topic.csdn.net/u/20101206/18/2bc62315-2e58-47a9-97be-107710592ab8.html?r=70399587
相关文章推荐
- WPF、WinForm(C#)多线程编程并更新界面(UI)
- WPF、WinForm(C#)多线程编程并更新界面(UI)(转载积累)
- 【WPF学习】WPF、WinForm(C#)多线程编程并更新界面(UI)/子线程更新主界面方式
- WPF、WinForm(C#)多线程编程并更新界面(UI)
- c#中Winform实现多线程异步更新UI(进度及状态信息)
- wpf 多线程 更新UI 界面
- C# Winform 跨线程更新UI控件常用方法汇总
- C#版 Winform界面 Socket编程 Client客户端
- C# Winform 跨线程更新UI控件常用方法汇总
- C# Winform 跨线程更新UI控件常用方法总结(转)
- c#中跨线程调用windows窗体控件 .我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。
- 富客户端 wpf, Winform 多线程更新UI控件
- c# winform编程之多线程ui界面资源修改总结篇【转】
- C# 多线程 防止界面假死 进度条的合理使用 WPF 多线程
- C# Winform 跨线程更新UI控件常用方法总结(转)
- Winform实现多线程异步更新UI(进度及状态信息)
- Winform实现多线程异步更新UI(进度及状态信息)
- C#在处理多线程更新到UI控件的多种方法
- (转).NET 4.5中使用Task.Run和Parallel.For()实现的C# Winform多线程任务及跨线程更新UI控件综合实例
- C# Winform 跨线程更新UI控件常用方法汇总