C#多线程实现异步接口
作者:.NET开发菜鸟 时间:2023-09-09 04:58:52
异步接口的声明
我们已经了解到,如果一个方法是异步的,那么这个方法的返回值类型是Task<T>,那么接口中该如何规定异步方法呢?
一样的,如果接口中的方法是异步的,那么规定方法的返回值类型是Task<T>即可,看下面的代码:
interface ITest
{
/// <summary>
/// 方法的返回类型是Task<T>
/// </summary>
/// <returns></returns>
Task<string> GetAsync();
}
注意:方法的前面不能添加async标注。因为从语法上来讲,接口只能定义行为,不能定义实现,如果标注为async,就属于实现了。我们在方法前面标注async,看看是什么效果:
我们看到,方法直接就报错了。而接口的实现类中的方法可以标注为async,也可以不标注为async,看下面的代码:
/// <summary>
/// 定义接口
/// </summary>
interface ITest
{
/// <summary>
/// 方法的返回类型是Task<T>
/// </summary>
/// <returns></returns>
///不能标注为async
Task<string> GetAsync();
}
public class Test : ITest
{
/// <summary>
/// 方法不标注为async 返回一个Task<string>类型
/// </summary>
/// <returns></returns>
//public Task<string> GetAsync()
//{
// return Task.Run<string>(() =>
// {
// return "2";
// });
//}
/// <summary>
/// 方法标注为async 直接返回一个string类型
/// </summary>
/// <returns></returns>
public async Task<string> GetAsync()
{
return "3";
}
}
来源:https://www.cnblogs.com/dotnet261010/p/12344114.html
标签:C#,多线程,异步,接口
0
投稿
猜你喜欢
SpringBoot自定义注解之实现AOP切面日志详解
2022-12-18 17:58:06
简述Java List去重五种方法
2022-02-28 03:17:13
Android listview的滑动冲突解决方法
2022-07-19 02:50:59
利用反射获取Java类中的静态变量名及变量值的简单实例
2022-12-09 17:56:06
C#使用NPOI实现Excel和DataTable的互转
2022-12-06 22:51:05
C#微信开发之微信公众号标签管理功能
2023-04-17 20:20:44
OpenCV实现人脸识别简单程序
2023-07-07 00:31:12
利用logback 设置不同包下的日志级别
2022-08-11 20:05:43
Android recyclerview实现纵向虚线时间轴的示例代码
2023-08-23 07:03:39
超炫酷的WPF实现Loading控件效果
2023-11-19 23:53:20
JavaCV调用百度AI实现人脸检测方法详解
2023-01-09 01:16:09
实现Android studio设置自动导包及自动导包快捷键
2022-03-22 00:05:26
使用Android studio3.6的java api方式调用opencv
2023-10-10 17:16:38
Java生成和解析XML格式文件和字符串的实例代码
2023-01-25 08:22:44
基于JWT.NET的使用(详解)
2021-07-09 22:15:25
C#使用Process类调用外部程序分解
2022-01-07 16:34:11
Android Studio连接SQLite数据库的登录注册实现
2023-08-14 11:27:49
Android自定义RadioGroupX实现多行多列布局
2023-03-27 17:19:47
Java定时调用.ktr文件的示例代码(解决方案)
2021-12-29 13:21:49
详解Android WebView监听console错误信息
2021-08-29 18:20:40