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(); } public void ExcuteCal() { Func<int, int> Cal = ExcuteTask1; // [1] 声明委托变量。 // [3] 异步调用 IAsyncResult result = Cal.BeginInvoke(100, null, null); Console.WriteLine("正在计算…"); Console.WriteLine(ExcuteTask2(20)); int s = Cal.EndInvoke(result); //委托类型的EndInvoke()方法:借助于IAsyncResult接口对象,不断查询异步调用是否结束。 //该方法知道被异步调用的方法所有参数,所以,异步调用完毕后,取出异步调用结果作为返回值。 Console.WriteLine(s); } private int ExcuteTask1(int num) // [2] 根据委托实现方法。 { Thread.Sleep(2000); return num * num; } private int ExcuteTask2(int num) { return num * num; } } }
输出:
正在计算… 400 10000
可见,异步调用的时候可以做其他的事情。
委托类型的Begininvoke(<输入和输出变量>,AsyncCallbac callback,object asyncState)
方法:异步调用的核心
第一个参数,表示委托对应的方法实参。
第二个参数callback
,回调函数,表示异步调用结束时自动调用的函数。
第三个参数asyncState
,用于向回调函数提供相关参数信息
返回值:IAsyncResult
-->异步操作状态接口,封装了异步执行的中的参数
这篇关于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#