winform控件跨线程委托
1.
this.listBox1.BeginInvoke(new Action(() =>
                {
if (listBox1.Items.Count > 20)
                        listBox1.Items.Clear();
listBox1.Items.Add(DateTime.Now + " ," + i+", "+ dtsource.Rows[i]["ID"] + " ,执行完成!");
                    listBox1.SelectedIndex = listBox1.Items.Count - 1;
}));
2.
delegate void AddItemCallback(string text);
        private void AddItem(string text)
        {
            if (this.listBox1.InvokeRequired)
            {
                AddItemCallback d = new AddItemCallback(AddItem);
                this.listBox1.Invoke(d, new object[] { text });
            }
            else
            {
                if (this.listBox1.Items.Count > 100)
                    listBox1.Items.Clear();
                this.listBox1.Items.Add(text);
                listBox1.SelectedIndex = listBox1.Items.Count - 1;
            }
        }
3.
listBox1.BeginInvoke(new del(Monitorlist), new object[] { DateTime.Now + ",采集" + Dmodels.SHOPNAME + "," + Dmodels.AREAS_BIG + "," + Dmodels.AREAS_SMALL + " ,完成!" });
public void Monitorlist(string text)
        {
            if(this.listBox1.Items.Count>60)
            {
                this.listBox1.Items.Clear();
            }
            this.listBox1.Items.Add(text);
            this.listBox1.SelectedIndex = listBox1.Items.Count - 1;
        }
4.
public delegate void del2();
this.label2.BeginInvoke(new del2(() => { this.label2.Text = dt.Rows[i]["aNAME"].ToString().Trim(); }));
winform控件跨线程委托的更多相关文章
- 使用winform控件注意线程绘制界面冲突
		
在用.NET Framework框架的WinForm构建GUI程序界面时,如果要在控件的事件响应函数中改变控件的状态,例如:某个按钮上的文本原先叫“打开”,单击之后按钮上的文本显示“关闭”,初学者往往 ...
 - C#线程中安全访问控件(重用委托,避免繁复的delegate,Invoke)总结
		
1.第一种,不安全,当线程过多后,timer控件和线程中同时访问窗体控件时,有时会出现界面重绘出错. public frmMain() { InitializeComponent(); System. ...
 - 用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它
		
//创建一个委托,是为访问listbox控件服务的. public delegate void UpdateTxt(string msg); //定义一个委托变量 public UpdateTxt u ...
 - [转] c#中 多线程访问winform控件
		
原文 c#中多线程访问winform控件的若干问题小结 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来解决这个问题,下面我将详细的 ...
 - 多线程访问winform控件出现异常的解决方法
		
一. 多线程访问winform控件出现异常的解决方法 1. 问题描述<1> 如果创建某控件的线程之外的其他线程试图调用该控件,则会引发一个 InvalidOperationExcept ...
 - c#中多线程访问winform控件的若干问题
		
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来解决这个问题,下面我将详细的介绍. 首先来看传统方法: public partial ...
 - wpf中插入winform控件并获取句柄
		
因工作需要使用wpf做界面,而有个开发包依赖picturebox控件,上网研究了一下,总算弄通了. 首先在项目中添加引用System.Windows.Forms与WindowsFormsIntegra ...
 - BackGroundWorker组件使用、Winform控件的Invoke安全调用
		
BackgroundWorker是·net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作. 可以通过编程方式创建 BackgroundWorker,也可以将它从"工具 ...
 - 如何:对 Windows 窗体控件进行线程安全调用
		
http://msdn.microsoft.com/zh-cn/library/ms171728(VS.90).aspx http://msdn.microsoft.com/zh-cn/library ...
 
随机推荐
- jQuery中bind与live的用法与区别
			
首先介绍这两个方法之前,我们常用的是click()方法 $("a").click(function() { alert("hello"); }); click( ...
 - linux学习心得之目录树开端与/etc(图文)
			
linux学习心得之目录树开端与/etc(图文) linux中“一切皆文件”,学习linux一年了,在学习过程中对目录树的一点心得,分享给大家,有不对的地方敬请斧正. 不多说了,先上图: 根目录: / ...
 - MSBuild是什么?
			
MSBuild入门 MSBuild是什么? MSBuild全称(Microsoft Build Engine),是用来生成.NET程序的平台.您可能不知道它,但是如果您在使用VS做开发,那么一定时时刻 ...
 - 在C中判断变量存储类型(字符常量/数组/动态变量)
			
在C中判断变量存储类型(字符常量/数组/动态变量) 在chinaunix论坛上有人问到关于变量存府类型的问题,我觉得可以写个测试代码加深大家对内存使用和布局的理解.下面我把原问题及处理办法贴出来,限供 ...
 - OpenRisc-37-OpenRISC的CPU&core的整体架构分析
			
引言 前面我们分析了ORPSoC的整体架构,并对其子系统进行了深入的分析和了解.但对于ORPSoC的核心模块or1200_top及其内部的core--or1200_cpu模块却鲜有涉及,算是ORPSo ...
 - 使用Cobertura统计JUnit测试覆盖率
			
这是一个JavaProject,关于Cobertura的用法详见代码注释 首先是应用代码(即被测试的代码) package com.jadyer.service; public class Calcu ...
 - 使用mysqldump 对数据库进行备份的乱码问题
			
最近在做项目的工程中,由于系统中需要提供数据库备份的功能,经过网上一番搜索,觉得采用简单的mysqldump (1)java代码 String backupSQL = "cmd /c mys ...
 - 学习新手给Android新手的一些学习建议
			
时间紧张,先记一笔,后续优化与完善. Shamoo做Android开辟已有一年了,对Android开辟也有一点点了解.上面就给Android新手说说我对Android浅面的意识和一点建议吧,知道的大牛 ...
 - [ios2]使用NSOperationQueue简化多线程开发和队列的优先级 【转】
			
多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说. 为了能让初级开发工程师也能使用多线程,同时还要简化复杂性.各种编程工具提供了各自的办法.对于iOS来说,建议在尽可能的情况下避 ...
 - pb_ds(平板电视)整理
			
有人说BZOJ3040用普通的<queue>中priority_queue搞dijkstra过不了. 我只想说你们的djk可能写的太丑了. 先上代码 #include<iostrea ...