namespace invoke和begininvoke的用法
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//声明接受int的方法并返回空的委托。
public delegate void invokeDelegate();
//调用委托,
// invokeDelegate FF = new invokeDelegate(StartMethod); private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() + "主线程1 最先执行"); // 最先执行
Thread invokeThread = new Thread(new ThreadStart(StartMethod)); //委托创建线程
invokeThread.Start(); //开始线程 string a = string.Empty;
for (int i = ; i < ; i++) //调整循环次数,看的会更清楚
{
Thread.Sleep();
a = a + "循环执行";
}
MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() +"主线程1"+ a); } private void StartMethod()
{
MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() + "主线程1 第二执行");
button1.Invoke(new invokeDelegate(invokeMethod)); //传递一个委托的方法; 依赖此控件来执行委托
//Thread.Sleep(3000);
MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() + "子线程1");
}
private void invokeMethod()
{
//Thread.Sleep(5000);
MessageBox.Show(Thread.CurrentThread.GetHashCode().ToString() + "主线程1 _执行委托方法");
}
}
}

来源 https://www.cnblogs.com/lsgsanxiao/p/5523282.html;

线程初始化方法

--委托

        public delegate int MyDelegate(string s);  //声明委托 // 类似于函数指针  返回值 为int 的函数,
//定义一个与这个委托相对应的函数
public static int AddNum(string str)
{
return ;
}
//自定义一个 函数 来
public void exc_delegate() { // 创建委托实例
MyDelegate nc1 = new MyDelegate(AddNum);
nc1(string.Empty); //执行该函数
}

---调用控件线程

        public delegate void UpdateListBoxCallback(string strAlarmTime, string strDevIP, string strAlarmMsg);
          if (InvokeRequired)
{
object[] paras = new object[];
paras[] = DateTime.Now.ToString(); //当前PC系统时间
paras[] = strIP;
paras[] = sb.ToString();
listViewAlarmInfo.BeginInvoke(new UpdateListBoxCallback(UpdateClientList), paras);
}
      public void UpdateClientList(string strAlarmTime, string strDevIP, string strAlarmMsg)
{
//列表新增报警信息
listViewAlarmInfo.Items.Add(new ListViewItem(new string[] { strAlarmTime, strDevIP, strAlarmMsg }));
}

C# invoke和begininvoke的用法的更多相关文章

  1. 浅谈Invoke 和 BegionInvoke的用法

    很多人对Invoke和BeginInvoke理解不深刻,不知道该怎么应用,在这篇博文里将详细阐述Invoke和BeginInvoke的用法: 首先说下Invoke和BeginInvoke有两种用法: ...

  2. 转载:C# this.Invoke()的作用与用法 理解三

    Invoke()的作用是:在应用程序的主线程上执行指定的委托.一般应用:在辅助线程中修改UI线程( 主线程 )中对象的属性时,调用this.Invoke();   在多线程编程中,我们经常要在工作线程 ...

  3. .Net基础——程序集与CIL HttpClient封装方法 .Net Core 编码规范 C#中invoke和beginInvoke的使用 WebServeice 动态代理类

    .Net基础——程序集与CIL   1. 程序集和CIL: 程序集是由.NET语言的编译器接受源代码文件产生的输出文件,通常分为 exe和dll两类,其中exe包含Main入口方法可以双击执行,dll ...

  4. C# this.Invoke()的作用与用法

    Invoke()的作用是:在应用程序的主线程上执行指定的委托.一般应用:在辅助线程中修改UI线程( 主线程 )中对象的属性时,调用this.Invoke();   在多线程编程中,我们经常要在工作线程 ...

  5. C# Invoke或者BeginInvoke的使用

    在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate. 一.为什么Control类提供了Invoke和BeginInvoke机制? 关于这个问题的最主要的原因已经是do ...

  6. C#中Invoke 和 BeginInvoke 的区别

    Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托. Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句 ...

  7. 控件的invoke和beginInvoke方法

    System.Windows.Forms.Timer 的timer是在主线程上执行的,因此在timer的tick事件中操作界面上的控件不会发生线程的安全性检测. Control的invoke和begi ...

  8. C#的Invoke和BeginInvoke

    在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法. 一.为什么Control类提供了Invoke和Begin ...

  9. 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke

    今天关闭一个窗体,报出这样的一个错误"在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke.",这个不用多想,肯定是那个地方没有释放掉.既然碰到这个问题, ...

随机推荐

  1. 条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用

    先看第一种情况:返回一个局部对象的引用.它的问题在于,局部对象 ----- 顾名思义 ---- 仅仅是局部的.也就是说,局部对象是在被定义时创建,在离开生命空间时被销毁的.所谓生命空间,是指它们所在的 ...

  2. ubuntu Shell

    Ubuntu下的ShellUbuntu的图形界面也是运行在Shell下的:虚拟终端机开启:Ctrl+Alt+F1~ F6 可以开启6个命令行的ShellCtrl+Alt+F7  开启图形终端机命令su ...

  3. Android SwipeToDismiss:左滑/右滑删除ListView条目Item

     <Android SwipeToDismiss:左右滑动删除ListView条目Item> Android的SwipeToDismiss是github上一个第三方开源框架(githu ...

  4. 架构师速成6.7-设计开发思路-uml

    uml是什么东西?统一建模语言.一门语言.是用来进行软件设计的一门语言. 事实上一门语言的诞生并不伟大,让大多数人都使用才足够伟大. uml就是一门伟大的语言.由于眼下软件设计的唯一语言就是它. UM ...

  5. Unity3D 怎样在安卓手机上播放视频

    曾经仅仅会在电脑上通过Unity3D播放视频,研究了下发现通过Unity3D在手机上播放视频也很easy.现介绍例如以下. void OnGUI()     {         if (GUI.But ...

  6. 使用 Pascal 脚本编写网页, PWP 项目

    下载后得到 pwp.rar 文件. 解压到一个文件夹里面, 比方  e:\my_sys 文件夹下. 设计一下的脚本. 測试能否够执行. <%  uses sysutils; begin      ...

  7. javascript 和 CoffeeScript 里的类

    javascript不是面向对象的语言,它用函数来模拟类和继承. javascript里,提供一个类并不难: var Person,l4, z3; Person = function(name) { ...

  8. MySQL启动不了 错误3

    这个需要修改下他的路径.楼主:点左下角开始键--运行--SC DELETE MYSQL然后 你再去打开你的MYSQL,就好了. 导入脚本http://jingyan.baidu.com/article ...

  9. [HNOI2006]潘多拉的宝盒

    https://www.zybuluo.com/ysner/note/1250303 题面 给定\(s\)个自动机,如果某个自动机\(A\)能产生的所有串都能在自动机\(B\)中产生(即走相同\(0/ ...

  10. createrepo

    [root@iio enp]# createrepo -g /enp/comps.xml .Spawning worker 0 with 1362 pkgsWorkers FinishedSaving ...