博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
委托异步回调
阅读量:4316 次
发布时间:2019-06-06

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

winform 需要运算的时候 很多时候需要异步去计算 防止界面卡死  大部分的例子写的比较复杂, 我重新给大伙讲下 我自己理解的 

1.委托就是一个类 所以我们需要先定义一个委托类型 (其实就是定义一个 和你要异步的的方法一样的返回类型和参数)

  public delegate void InserData();

2.然后声明这个类型

   public InserData SetData;

3.实例化这个委托,把方法名放入

  SetData = new InserData(SetRedisData);

4.开始异步调用

SetData.BeginInvoke(AsyncCallback, null);

5.要实现回调方法

private void AsyncCallback(IAsyncResult ar)

{
  MessageBox.Show("工作完成!");
}

 

完整代码:

public delegate void InserData();public InserData SetData;
SetData = new InserData(SetRedisData);SetData.BeginInvoke(AsyncCallback, null);
// 结束异步操作private void AsyncCallback(IAsyncResult ar){   MessageBox.Show("工作完成!");}
public void SetRedisData() {
int i = 1; while (i<100) {
Thread.Sleep(1000); }}

口诀:1.定义2.声明3.实现(传入方法名)4.调用5.回调

 

转载于:https://www.cnblogs.com/linyijia/p/10083973.html

你可能感兴趣的文章
kettle java交互_通过Java调取Kettle的结果集
查看>>
mysql 导致iis 假死_解决IIS无响应假死状态
查看>>
mysql数据库读取快照隔离_CookBook/1-MySQL数据库读写锁示例详解、事务隔离级别示例详解.md at master · cuiko/CookBook · GitHub...
查看>>
skinme java 路径错误_java 错误 classes路径配置错误
查看>>
python安装tensorflow gpu_[tensorflow] tensorflow-cpu/gpu 安装过程
查看>>
java二维数组矩阵_获取从二维数组矩阵的行和列在Java中
查看>>
scala mysql连接池_Scala 操作Redis使用连接池工具类RedisUtil
查看>>
css背景图片高斯模糊_CSS3 filter(滤镜) 制作图片高斯模糊无需JS
查看>>
matlab综合实验题库,数学实验matlab题库答案
查看>>
oracle wri$_adv_objects突增,SYSTEM Tablespace — oracle-tech
查看>>
python抓取oracle数据,python爬虫,抓取oracle-base上的一些常用脚本
查看>>
oracle分页用子查询,[亲测]Oracle查询--子查询,分页查询(二)
查看>>
oracle动态语句怎么传参数值,DATAX动态参数数据传递
查看>>
php怎么设置文本区域,PHP txt下载不写文本区域内容
查看>>
linux各个目录名称,描述Linux发行版的系统目录名称命名规则以及用途
查看>>
linux 脚本里切换用户密码,shell,切换用户,执行指定,脚本
查看>>
linux配置无密码登陆,Linux下配置ssh无密码登录
查看>>
linux视频对讲qt方案,QT下视频通话的实现
查看>>
顺序串c语言,数据结构c语言实现定长顺序串
查看>>
linux 安装qq2014,Ubuntu14.04安装wine QQ
查看>>