C#同步和异步调用方法实例
时间:2022-09-11 21:20:50
namespace ConsoleTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("********同步调用开始**********");
int result = Add(1,2);
Console.WriteLine("同步调用完毕,执行结果为:" + result);
Console.WriteLine("********异步调用开始**********");
SynAdd(1, 2, (r) => {
Console.WriteLine("异步调用完毕,执行结果为:" + r);
});
Console.WriteLine("-------完毕!----------");
Console.ReadLine();
}
/// <summary>
/// 同步方法
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
static int Add(int a, int b)
{
Thread.Sleep(5000);
return a + b;
}
/// <summary>
/// 异步调用
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <param name="callback">委托对象</param>
static void SynAdd(int a, int b, Action<int> callback)
{
Func<int> func = () =>
{
Thread.Sleep(5000);
return a+b;
};//声明异步方法实现方式
func.BeginInvoke((ar) =>
{
var result = func.EndInvoke(ar);//调用完毕执行的结果
callback.Invoke(result);//委托执行,回传结果值
}, null);
}
}
}
标签:异步调用,同步调用,C#
0
投稿
猜你喜欢
基于FeignException$InternalServerError的解决方案
2023-04-25 15:50:45
spring boot 2.x html中引用css和js失效问题及解决方法
2021-08-13 10:28:32
Springcloud微服务架构基础知识解析
2023-01-26 14:37:10
java开发之内部类的用法
2023-02-04 21:30:07
Flutter Widgets之标签类控件Chip详解
2023-06-26 14:22:35
详解Kotlin中的面向对象(一)
2023-08-17 12:57:38
SpringMVC中@ModelAttribute与@RequestBody的区别及说明
2023-11-24 12:09:51
值得Java开发者关注的7款新工具
2023-11-02 23:05:31
解决Mybatis中foreach嵌套使用if标签对象取值的问题
2023-11-23 06:02:02
Java中io流解析及代码实例
2023-08-22 16:46:48
IntellJ IDEA神器使用技巧(小结)
2023-08-08 22:01:44
浅谈java的byte数组的不同写法
2023-03-10 07:53:12
使用controller传boolean形式值
2023-11-28 23:05:33
Java日期与时间类原理解析
2021-07-20 14:00:36
浅谈springboot的三种启动方式
2022-07-31 10:57:47
深入理解Spring事务原理
2022-01-18 04:16:39
SpringBoot常用数据库开发技术汇总介绍
2023-11-11 09:39:22
idea如何配置javafxsdk详细教程
2023-11-24 22:04:16
基于java集合中的一些易混淆的知识点(详解)
2023-08-29 03:06:26
Java数据结构超详细分析二叉搜索树
2022-12-01 01:34:20