C# 异步回调函数基础
2021/9/26 9:10:54
本文主要是介绍C# 异步回调函数基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
回调函数的基本用法。
using System; using System.Threading; namespace AsyncBasic { class Program { [STAThread] static void Main(string[] args) { new Program().ExcuteCal(); Console.ReadKey(); } private Func<int, int, int> Cal = null; // [1] 声明委托变量。 都要用声明为成员变量 public Program() { Cal = new Func<int, int, int>(ExcuteTask1); // 初始化委托。 } // [4] 同时执行多个任务 public void ExcuteCal() { for (int i = 1; i <= 10; i++) { Cal.BeginInvoke(i * 10, i * 100, MyCallBack, i); //最后一个参数 i 给回调函数的字段AsyncState赋值,如果数据很多可以定义成类或结构 } } private int ExcuteTask1(int num, int ms) // [2] 根据委托实现方法。 { Thread.Sleep(ms); return num * num; } //[5] 回调函数 private void MyCallBack(IAsyncResult result) { int res = Cal.EndInvoke(result); Console.WriteLine("第{0}个计算结果是{1}", result.AsyncState.ToString(), res); } } }
程序有些地方可以用 lamdba 表达式简化下。
输出:
第1个计算结果是100 第2个计算结果是400 第3个计算结果是900 第4个计算结果是1600 第5个计算结果是2500 第6个计算结果是3600 第7个计算结果是4900 第8个计算结果是6400 第9个计算结果是8100 第10个计算结果是10000
这篇关于C# 异步回调函数基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#