当前位置: 首页 > news >正文

C#BeginInvoke编程基础(一)

一、异步编程的核心:委托
在这里插入图片描述

 private int Task1(int num)
 {
     //延迟5S,模拟长时间的操作
     System.Threading.Thread.Sleep(5000);
     return num * num;
 }

 private int Task2(int num)
 {
     return num * num;
 }

1、同步执行任务

/// <summary>
/// 同步执行任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
    this.lblResult1.Text = "0";
    this.lblResult2.Text = "0";

    this.lblResult1.Text = Task1(10).ToString();
    this.lblResult2.Text = Task2(20).ToString();
}

2、异步执行,先定义委托

//【1】定义委托
public delegate int MyDelegate(int num);
/// <summary>
/// 异步执行任务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
    this.lblResult1.Text = "0";
    this.lblResult2.Text = "0";
    MyDelegate objMyCal = Task1;
    IAsyncResult res = objMyCal.BeginInvoke(10, null, null);
    this.lblResult1.Text = "正在执行中,请稍后。。。。。。";
    this.lblResult2.Text = Task2(20).ToString();
    this.lblResult1.Text = objMyCal.EndInvoke(res).ToString();
}

**异步总结:**1、通过委托异步调用 Task2。
2、委托类型烦的 BeginInvoke(<输入和输出变量>,AsyncCallBack callback,object ayncState)方法:异步调用的核心。
3、第一个参数。表示委托对应的方法实参。
4、第二个参数callback,回调函数,表示异步调用结束后,自动调用的方法。
5、第三个参数ayncState,用于想回调函数提供相关的参数信息。
6、返回值,IAsyncResult 异步操作状态接口,封装了异步执行中的参数。

相关文章:

  • python:调用 ui2 获取当前页面所有实时文本
  • 数据结构——优先级队列(堆)
  • 复习HCIA
  • 解决用three.js展示n个叠加的stl模型文件错位的问题
  • ubuntu qt工程打包后续:桌面快捷方式、开机登陆桌面后自动运行
  • OpenCV图像拼接(1)自动校准之校准旋转相机的函数calibrateRotatingCamera()
  • 在线JSON格式校验工具站
  • 详细介绍IDI_APPLICATION和IDC_ARROW
  • ubuntu20.04使用matlab2024a快捷键调整
  • Python 爬取 1688 关键词搜索接口数据返回说明
  • vue el-table 设置selection选中状态
  • MySql面试总结(三)
  • matlab近似计算联合密度分布
  • 阿里云国际站代理商:如何构建交互式安全分析看板?
  • vue3+el-cascader-panel+多选+动态加载+默认展开+选中查询节点并展开+查询到的这一条自动滚动到顶部+tooltip效果
  • 高铁监控存储扩容-DS SAN存储磁盘阵列
  • Python中数据结构元组详解
  • LangChain开发(一)介绍和第一个例子
  • 什么是 BA ?BA怎么样?BA和BI是什么关系?
  • Nginx的HTTPS配置
  • 回望乡土:对媒介化社会的反思
  • 极限拉扯上任巴西,安切洛蒂开启夏窗主帅大挪移?
  • 西王食品连亏三年:主业齐“崩”,研发人员多为专科生
  • 观众走入剧院空间,人艺之友一起“再造时光”
  • 专访|家人眼中的周碧初:用色彩写诗,实践油画“民族化”
  • 泽连斯基:乌克兰已做好与俄罗斯举行会谈的准备