C# 实现线程内部与界面控件交互

线程内部无法直接调用web层控件的数据,以及线程与数据的相互交互,这时候要用到委托

代码:

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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public delegate void wdelegate(string str1); //创建委托

public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{

}
public void DoWork()//实现功能
{
wdelegate mi = new wdelegate(UpdateForm);
this.BeginInvoke(mi, new Object[] { "我是文本框" });
}

public void UpdateForm(string param1) //给文本框赋值的方法
{
this.TextBox1.Text = param1;
}

private void button1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(new ThreadStart(DoWork)); //线程
thread.Start();//开始线程
}

}
}

时间: 2024-12-26 10:25:20

C# 实现线程内部与界面控件交互的相关文章

C#学习之在辅助线程中修改UI控件----invoke方法

Invoke and BeginInvoke 转载地址:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html 在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法. 一.为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己

Winform中子线程访问界面控件时被阻塞解决方案

public partial class WebData_Import : Form { //声明用于访问主界面的委托类型 public delegate void deleGetOrderdata(string info); //声明访问主界面委托类型的变量 public deleGetOrderdata OptGetOrderData; int CompanyID = 0; public WebData_Import() { InitializeComponent(); cmbCompany

C++MFC编程笔记day10 MF界面控件的使用2、属性页对话框、MFC线程

一 树型控件 1 相关类 CTreeCtrl-父类是CWnd,控件类. CTreeView-父类是CCtrlView,视图类.CTreeView=CView+CTreeCtrl CTreeView::GetTreeCtrl 2 CTreeCtrl的使用 对比CListCtrl:列表控件的每个数据项之间是平等关系,通过数据项 的索引值得到数据项的信息.树控件每个数据项称之为节点.节点之间 的关系包括父子关系和兄弟关系.通常通过节点句柄得到某个节点. 通常用来表示层次关系的数据. 2.1 设置控件的

扩展BindingList,防止增加、删除项时自动更新界面而不出现“跨线程操作界面控件 corss thread operation”异常

在做界面程序时,常常需要一些数据类,界面元素通过绑定等方式显示出数据,然而由于UI线程不是线程安全的,一般都需要通过Invoke等方式来调用界面控件.但对于数据绑定bindingList而言,没法响应listchang事件,导致后端的grid等控件不能更新数据.废了好大的劲终于找到一个UIBindingList,实现线程数据的同步! using System; using System.ComponentModel; using System.Threading; using System.Wi

C# 的界面控件属性修改线程安全问题

今天在实验delegate与thread 在初步的实验结束后,因为原来的delegate只有一个函数会被调用,感觉没有达到delegate的极致,所以又重新自己定义了一个delegate,在另一个线程 运行时调用这个delegate,其中有两个函数会被顺序调用. 一开始写的很顺利,点击运行.生成第二个线程后,突然报出异常.说是不能再控件创建的线程外调用这个控件的属性. 于是有些奇怪,因为只是加入了一个不痛不痒的函数而已. 回溯,发现问题. 原来原来调用delegate,是通过控件的invoke方

日积(Running)月累(ZSSURE):WCF学习之“通过事件绑定控制WinForm宿主程序主界面控件”

背景: WCF服务需要寄宿到相应的可运行进程中执行,常见的有四种寄宿,分别是控制台程序.WinForm程序.IIS和Windows服务.之前学习老A博客和<WCF全面解析>时最常用到的是控制台寄宿,近期由于项目需求,需要在WinForm程序中调用WCF服务,本博文通过一个简单的实例来演示WCF在WinForm中的寄宿.并着重介绍如何利用事件绑定控制宿主主UI界面控件. 题记: 之前一直坚守在C++阵地,对于新语言.新技术(诸如Python.J2EE.Bigdata.AI)不甚感冒.自以为&qu

WinForms界面控件初探:互动、精准、强大的Map Control

今天给大家介绍WINFORMS界面控件中的Map Control ,其强大的搜索,精准的定位,和诸多实用性功能,都十分值得一试.下面就带大家看看它有哪些特性吧. 多个地图供应商 可选择任何现有的地图数据提供商,并嵌入到你的地图控件中,从网上或者内部服务器获取映射图像. 搜索和获取方向 简单易用的搜索面板,也可使用Bing Maps的地理编码.海拔和路由服务. 通知与导航 为用户提供所需的地图:提供你位置的简短概述:可平移和缩放地图 POI集群 数据可视化变得简介清晰,整合的数据将在附近以一个聚合

c#中跨线程调用windows窗体控件

c#中跨线程调用windows窗体控件解决. 我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍.首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Thread thre

基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的一些使用知识,包括控件的赋值.取值.清空,以及相关的使用. 我们知道,一般Web界面包括的界面控件有:单行文本框.多行文本框.密码文本框.下拉列表Combobox.日期输入控件.数值输入控件.单项选择.复选框.表格控件DataGrid.树形控件.布局控件.弹出式对话框.提示信息.列表控件等,这些界面控件的操作都有哪些不同,下面我们来逐一进行介绍. <input class="easyui