- 浏览: 195216 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (231)
- C++学习 (41)
- vc学习 (25)
- vc异常 (4)
- Flex (2)
- Ext (0)
- java学习笔记 (15)
- mysql学习笔记 (1)
- ibatis学习笔记 (7)
- struts1学习笔记 (1)
- hibernate学习笔记 (3)
- javascript学习笔记 (8)
- eclipse快捷键 (2)
- 英语学习 (1)
- cmd (1)
- eclipse 配置 (2)
- 其他 (4)
- JAVASE (34)
- firefox (1)
- linux (8)
- Apache (6)
- cms (22)
- jsuc (10)
- html (3)
- css (1)
- 作图 (2)
- vs2012 (2)
- 编码转换 (12)
- work_unicode (1)
- work_webbrowser (1)
- work_trade_quotes_login (1)
- c#学习 (38)
- wpf学习 (31)
- wpf快速学习 (1)
- VB学习 (1)
- NSIS (4)
- log4cpp (3)
- 学习web (1)
- 经验 (1)
- c_汇编 (1)
最新评论
C#跨线程操作控件 带参数传递(转)
// 定义委托 private delegate void DelegateWriteResult(string file, bool result); // 与定义的委托签名相同的函数,操作主线程控件 private void WriteResult(string fileName, bool result) { if (result) { ListViewItem thisListItem = new ListViewItem(); thisListItem.ForeColor = Color.White; thisListItem.BackColor = Color.DarkGreen; thisListItem.SubItems[0].Text = fileName; thisListItem.SubItems.Add("成功"); lvResultList.Items.Add(thisListItem); } else { ListViewItem thisListItem = new ListViewItem(); thisListItem.ForeColor = Color.White; thisListItem.BackColor = Color.Red; thisListItem.SubItems[0].Text = fileName; thisListItem.SubItems.Add("失败"); lvResultList.Items.Add(thisListItem); } } // 启动线程 // 线程执行函数 private void CompressAll() { // 判断是否需要Invoke,多线程时需要 if (this.InvokeRequired) { // 通过委托调用写主线程控件的程序,传递参数放在object数组中 this.Invoke(new DelegateWriteResult(WriteResult),new object[] { "item", true }); } else { // 如果不需要委托调用,则直接调用 this.WriteResult("item", true); } } private void button1_Click_1(object sender, EventArgs e) { Thread workThread = new Thread(new ThreadStart(CompressAll)); // 设置为背景线程,主线程一旦推出,该线程也不等待而立即结束 workThread.IsBackground = true; workThread.Start(); }
发表评论
-
byte数组直接输出
2016-07-19 11:38 1203byte数组直接输出 BitConverter.ToStrin ... -
wfi:WindowsFormsHost焦点设置
2016-07-05 17:56 526<wfi:WindowsFormsHost> ... -
x:Name
2016-04-25 10:44 411由于“Dameer”是在同一程序集中实现的,您必须设置 x:N ... -
WindowsFormsHost的使用注意
2016-04-25 10:24 1279一使用 1 引用 2 xmlns:wfi ="clr ... -
TextBox滚动条
2016-04-22 16:51 613<TextBox Grid.Row="1& ... -
TextBlock滚动条
2016-04-22 16:49 403<ScrollViewer Name="s ... -
C#_WPF_WPF用户控件库
2016-04-12 11:37 757新建项目》window桌面》WPF用户控件库 -
DependencyProperty.UnsetValue_WPF涉及到资源的嵌套引用,被引用的资源要定义在引用的资源前面
2015-10-27 15:09 1907错误 1 “{DependencyProperty.Unset ... -
string格式的日期时间字符串转为DateTime类型
2015-08-05 14:22 915string格式的日期时间字符串转为DateTime类型 / ... -
checkbox
2015-07-28 17:18 500private void Chec ... -
自定义DataGrid样式
2015-06-26 22:03 703<ResourceDictionary xmlns=&q ... -
x:Name x:Key Name区别
2015-06-25 15:40 554x:Name x:Key Name区别 1、x:Key 只 ... -
work_代码添加
2015-06-23 17:15 468<UserControl x:Class=" ... -
FindName和VisualTreeHelper
2015-06-19 13:23 717int iCount = this.dataGridCan ... -
理解WPF中的视觉树和逻辑树(转载)
2015-06-19 13:00 554理解WPF中的视觉树和逻辑树 理解WPF中的 ... -
理解WPF中的视觉树和逻辑树(转载)
2015-06-19 12:58 1595理解WPF中的视觉树和逻 ... -
GetEnumerator
2015-06-19 12:39 608IEnumerator enumerator = this ... -
资源文件获取配置
2015-06-18 16:03 339object obj = Application.Curren ... -
Pack URI
2015-06-18 15:41 648主要用来定位 资源文 ... -
wpf学习之ObservableCollection<T>相关知识
2015-04-23 11:10 3264本篇学习了ObservableCollection<T& ...
相关推荐
在C#中,跨类跨线程访问UI线程控件是一个常见的需求。以下是几种常用的方法: 委托(Delegate):委托...以上是一些常见的C#跨类跨线程访问UI线程控件的技术和方法。具体使用哪种方法取决于你的应用程序的需求和架构。
跨线程更新UI控件的常用方法有两种: 1.使用控件自身的invoke/BeginInvoke方法 2.使用SynchronizationContext的Post/Send方法更新 具体实现如下: 1.使用控件自身的invoke/BeginInvoke方法 Control类实现了ISyn
第六章 类 型 转 换 .48 6.1 隐式类型转换 .48 6.2 显式类型转换 .53 6.3 小 结 .56 第七章 表 达 式 .58 7.1 操 作 符 .58 7.2 算术操作符和算术表达式.59 7.3 赋值操作符和赋值表达式.64 7.4 关系...
因pdf的容量过大分4个压缩包打包,还有一个源码另外下载。 《.NET深入体验与实战精要》作者身为从事.NET一线开发的资深开发专家,常年耕耘...15.5.14 使用视图代替跨库操作 572 15.5.15 尽量避免大事务操作 572 15.5.16...
因pdf的容量过大分4个压缩包打包,还有一个源码另外下载。 《.NET深入体验与实战精要》作者身为从事.NET一线开发的资深开发专家,常年耕耘...15.5.14 使用视图代替跨库操作 572 15.5.15 尽量避免大事务操作 572 15.5.16...
擅长嵌入式系统软件设计、J2ME游戏开发、Android开发,以及J2EE、JSP、Servlet、JavaBeans、PHP、C#等程序语言,熟悉面向对象技术与Eclipse、Netbeans开发工具,积累多年大型项目开发、跨系统整合经验。 目录 第1...