博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Action<T> 泛型委托 在跨线程访问控件委托中的应用
阅读量:4356 次
发布时间:2019-06-07

本文共 595 字,大约阅读时间需要 1 分钟。

C#在跨线程操作控件时, 一般如下操作:

在非主线程中调用:

     UpdateInfo(info);

 

delegate void updateInfoDelegate(string info);

private void UpdateInfo(string info)

{

      if (this.InvokeRequired)

     {

          updateInfoDelegate d= new updateInfoDelegate(UpdateInfo);

          this.Invoke(d, new object[]{info});

      }

      else

      {

            this.label1.Text = info;

       }

}

 

但现在有了 Action<T> 泛型委托, 则就不需要自己申明一个委托了, 只需要将上述蓝色文字部分修改为如下即可:

     this.Invoke(new Action<String>(), info); 

若有多个参数也可以的, 还有 Action<T1, T2>, Action<T1, T2, T3>,Action<T1, T2, T3, T4> ;

若有更多的参数则就将参数封装到一个对象里吧;

若需要返回值, 则用 泛型 Func<T, TResult> 委托即可.

转载于:https://www.cnblogs.com/csMapx/archive/2011/09/08/2171650.html

你可能感兴趣的文章
在Linux系统中,使用useradd命令新建用户后,登录该用户时shell开头为$,不显示用户名和路径,如下:...
查看>>
生成QT动态库DLL指导
查看>>
docker harbor镜像仓库
查看>>
MultiSet链表自定义结构体排序
查看>>
如何在sublime text3运行nodejs
查看>>
第十四节 JS面向对象基础
查看>>
1、SpringMVC+MyBaits实现查询所有
查看>>
修改 Vultr 登录密码
查看>>
CSS学习
查看>>
Centos 安装lnmp完整版
查看>>
PHP把图片存入数据库(非路径)【待测试】
查看>>
ZH奶酪:PHP判断图片格式的7种方法
查看>>
java中给main传参的方式
查看>>
Git常用
查看>>
springboot实现邮件发送
查看>>
Python3.x:抢票
查看>>
前端三大主流框架的对比React、Vue、Angular 所谓是是三分天下
查看>>
SLAM入门之视觉里程计(6):相机标定 张正友经典标定法详解
查看>>
从开发消费者变成开发生产服务者
查看>>
玩转html5(三)---智能表单(form),使排版更加方便
查看>>