转自原文 线程间操作无效: 从不是创建控件的线程访问它.

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 LoginIn
{public partial class Form1 : Form{delegate void MyDelegate(string name, string code);delegate void SetTipDelegate(string tip);public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string name = txtName.Text;string code = txtCode.Text;//调用委托,用新线程校验用户名、密码MyDelegate myDelegate = new MyDelegate(CheckUser);myDelegate.BeginInvoke(name, code, null, null);}void CheckUser(string name, string code){Thread.Sleep(2000);if (name == "1" && code == "1"){SetTip("成功");}else{SetTip("失败");}}void SetTip(string tip){//是否调用Invoke方法if (lbTip.InvokeRequired)//if(!从创建控件“lbTip”的线程访问它){//调用委托SetTipDelegate myDelegate = new SetTipDelegate(SetTip);Invoke(myDelegate, tip);}else{lbTip.Text = tip;}}private void timer1_Tick(object sender, EventArgs e){button1.Text = DateTime.Now.ToString();}}
}

2015年8月3日 16:49:27,更新简写版

protected void button1_Click(object sender,EventArgs e){string userName = txtName.Text;string userCode = txtCode.Text;Func<string ,string ,string> d1 = (name, code) =>           (name == "1" && code == "1") ? "成功" : "失败";                            d1.BeginInvoke(userName,userCode,ar=>{string result= d1.EndInvoke(ar);Action<string> action1=data=>label1.Text=data;Invoke(action1,result);},null);}

线程间操作无效: 从不是创建控件的线程访问它相关推荐

  1. 黄聪:BackGroundWorker解决“线程间操作无效: 从不是创建控件的线程访问它” (C# VS2008)...

    在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选.这个时候程序会卡,当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作 ...

  2. 【转】“线程间操作无效: 从不是创建控件的线程访问它”

    经典解决"线程间操作无效: 从不是创建控件的线程访问它" 在编程中经常会遇到在一个按钮中执行复杂操作,并将复杂操作最后返回的值加入一个ListView或ComboBox中候选.这个 ...

  3. 线程间操作无效: 从不是创建控件的线程访问它。

    private void button1_Click(object sender, EventArgs e){//报错:从不是创建控件的线程访问它Thread t = new Thread(() =& ...

  4. c#报错 :System . Invalid Operation Exception:“线程间操作无效: 从不是创建控件的线程访问它

    一.问题来源 跨线程操作时会报错:System.InvalidOperationException:"线程间操作无效: 从不是创建控件的线程访问它. 二.问题代码 using System; ...

  5. 线程间操作无效,从不是创建控件的线程访问它。

    最近在开发项目时用到了操作线程的问题,在新线程中写入了操作控件的代码如: this.btnToolUpload.Enabled = true; 但是在线程执行过程中,当执行到这段代码时提示:" ...

  6. C# WinForm 线程间操作无效: 从不是创建控件的线程访问它的解决办法

    .net2后是不能跨线程访问控件的.,窗体上的控件是当前线程创建的,当用户异步执行一个方法:在该方法中给窗体上的控件赋值,记住:当执行一个异步委托的时候,其实 就是开了一个线程去执行那个方法,这样就会 ...

  7. c# 线程间操作无效: 从不是创建控件“”的线程访问它,用托管来解决

    如果代码是在VS2003中的话应该不会抛出这个异常,只有在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常.这是微软为了保证线程安全以及提高代码的 ...

  8. C#线程间操作无效: 从不是创建控件 XX 的线程访问它

    转自:http://www.arasplm.net/index.php/zh/community/myblog/c-xx-.html 前些天做的要使用到线程的项目,现在和大家分享一下感受! 以下面小列 ...

  9. System.InvalidOperationException:“线程间操作无效: 从不是创建控件“txtPortName02”的线程访问它。”...

    "System.InvalidOperationException"类型的未经处理的异常在 System.Windows.Forms.dll 中发生 其他信息: 线程间操作无效: ...

最新文章

  1. 关闭/开启 ubuntu 自动更新提示
  2. c++ socket 连接超时_Web性能优化之-HTTP长连接
  3. 2016云栖大会马云畅谈未来五大创新趋势
  4. [ZZ]Debug VBScript with Visual Studio
  5. Angular实现悬浮球组件
  6. 小明的调查统计(二)
  7. windows10安装ninja过程记录
  8. html网页中加载pdf,在HTML页面中嵌入本地PDF
  9. 想知道PDF转Word软件哪个好?向你推荐3个自用软件
  10. 华为云文字识别服务关键技术、能力和产品落地需要注意的事宜(OCR系列二)
  11. MYSQL 思考题5 参考答案
  12. 使用 kind 1 分钟启动一个本地 k8s 开发集群
  13. 响应式 BootStrap 媒体查询 栅格 组件 scss
  14. 用树莓派做一个实时垃圾分类器|超实用!!
  15. 抢购倒计时自定义控件的实现与优化
  16. python之海龟绘图
  17. 2021中青杯B题港珠澳大桥桥梁设计与安全策略思路代码
  18. frp代理工具流量分析
  19. 必读论文 | 卷积神经网络百篇经典论文推荐
  20. ZZULI-2019年3月份月赛(个人赛)问题 I: 小P找座位 思维or矩阵快速幂

热门文章

  1. 微软:Azure AI是OpenAI技术商业化变现唯一、排他性合作方
  2. 「图像分割模型」全景分割是什么?
  3. 甲骨文落寞、SAP跃进:商用软件巨头的突围与宿命
  4. 第二代NumPy?阿里开源超大规模矩阵计算框架Mars
  5. SAP EWM 性能优化(一)
  6. 干货丨机器学习和深度学习概念入门
  7. SSA(static single assignment)(静态单赋值)
  8. 世界上最好的光刻机为什么来自荷兰?【物联网智商精选】
  9. 222页斯坦福人工智能报告出炉:全球AI投资猛增680亿,北美博士学术机构就业率下降
  10. 神经科学中的数学之美