java让一个方法等待_如何写一个“等待”的方法?
只需将您的方法转换为任务 . 像@Romiox我通常使用这个扩展
public static partial class Ext
{
#region Public Methods
public static Task ToTask(Action action)
{
return Task.Run(action);
}
public static Task ToTask(Func function)
{
return Task.Run(function);
}
public static async Task ToTaskAsync(Action action)
{
await Task.Run(action);
}
public static async Task ToTaskAsync(Func function)
{
return await Task.Run(function);
}
#endregion Public Methods
}
现在让我们说你有
void foo1()
void foo2(int i1)
int foo3()
int foo4(int i1)
...然后你可以像@Romiox一样声明你的[异步方法]
async Task foo1Async(){
return await Ext.ToTask(()=>foo1());
}
async Task foo2Async(int i1){
return await Ext.ToTask(()=>foo2(i1));
}
async Task foo3Async(){
return await Ext.ToTask(()=>foo3());
}
async Task foo4Async(int i1){
return await Ext.ToTask(()=>foo4(i1));
}
要么
async Task foo1Async(){
return await Ext.ToTaskAsync(()=>foo1());
}
async Task foo2Async(int i1){
return await Ext.ToTaskAsync(()=>foo2(i1));
}
async Task foo3Async(){
return await Ext.ToTaskAsync(()=>foo3());
}
async Task foo4Async(int i1){
return await Ext.ToTaskAsync(()=>foo4(i1));
}
...
现在你使用async并等待任何fooAsync,例如foo4Async
async Task TestAsync()
{
///Initial Code
int m=3;
///Call the task
var X =foo4Async(m);
///Between
///Do something while waiting comes here
///..
var Result =await X;
///Final
///Some Code here
return Result;
}
java让一个方法等待_如何写一个“等待”的方法?相关推荐
- 未能加载文件或程序集或它的某一个依赖项_手写一个miniwebpack
前言 之前好友希望能介绍一下 webapck 相关的内容,所以最近花费了两个多月的准备,终于完成了 webapck 系列,它包括一下几部分: webapck 系列一:手写一个 JavaScript 打 ...
- 手写一个promise用法_手写一个自己的 JavaScript Promise 类库
终于有时间写这篇文章了, ES2015 推出了JS 的 Promise ,而在没有原生支持的时候,我们也可以使用诸如 Promises/A+ 的库的帮助,在我们的代码里实现Promise 的支持: 如 ...
- 如何写一个脚本语言_如何写一个Nx schematic plugin?
前言 玩过Angular的同学都知道Angular作为一个Framework,拥有一套完备的生态,还集成了强大的CLI.而React则仅仅是一个轻量级的Library,官方社区只定义了一套组件的周期规 ...
- 手写一个promise用法_手写一个 Promise
1 js 的基本数据类型? 2 JavaScript 有几种类型的值? 3 什么是堆?什么是栈?它们之间有什么区别和联系? 4 内部属性 [Class] 是什么? 5 介绍 js 有哪些内置对象? 6 ...
- 手写一个promise用法_手写一个Promise
JS面向对象 在JS中一切皆对象,但JS并不是一种真正的面向对象(OOP)的语言,因为它缺少类(class)的概念.虽然ES6引入了class和extends,使我们能够轻易地实现类和继承.但JS并不 ...
- 通过代码创建一个文件a.txt 然后写一个方法,控制台循环输入内容,然后通过gbk的编码格式保存到 a.txt中(要求可以追加),直到输入exit结束 再写一个方法,要求用字符缓冲流读取a.tx
通过代码创建一个文件a.txt 然后写一个方法,控制台循环输入内容,然后通过gbk的编码格式保存到 a.txt中(要求可以追加),直到输入exit结束 再写一个方法,要求用字符缓冲流读取a.txt中的 ...
- 写一个方法判断一个整数是否为质数_请写一个函数来检查用户提交的数据是否为整数...
请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制.八进制.十进制.十六进制数字) 1.is_integer 是 is_int() 的别名,是一样的 2.is_int/is_in ...
- 如何搭建python框架_从零开始:写一个简单的Python框架
原标题:从零开始:写一个简单的Python框架 Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 你为什么想搭建一个Web框架?我想有下面几个原因: 有一个 ...
- node爬取app数据_从零开始写一个node爬虫(上)—— 数据采集篇
爬虫相信大家都知道,这里我们从一个空的文件夹开始,也来写一写我们自己的爬虫程序吧. github入口 下一篇--数据分析篇入口 爬虫毕竟涉及到数据的爬取,所以其实有一个道德的约束,那就是Robots协 ...
最新文章
- Python中scrapy下载保存图片
- Oracle提议将G1作为Java 9的默认垃圾收集器
- 通过简单例子 | 快速理清 UML类图中六大关系
- iPhone磁盘空间/剩余空间代码
- mongodb内存映射原理
- mybatis简单案例源码详细【注释全面】——Utils层(MybatisUtils.java)
- android如何导入活动,关于android:如何将活动值传递给另一个活动(Kotlin)
- C语言中的位域的使用
- 怎么激活linux系统远程桌面休眠状态,如何从命令行挂起/休眠?
- (宇哥云端)互联网+
- Spring security3入门(转)
- LAMP架构简介与概述 及服务安装
- ICO 图标快速制作
- windows打包ios app
- ownCloud问题处理server replied 423 Locked to
- 软考高项(信息系统项目管理师)考试资料汇总和学习方法总结
- SOA 的定义 ——谢炯
- 使用Python将mat文件转换为npy文件
- 清单革命 <<读后感>> _(:з」∠)_
- C++对象模型-在对象模型的尖端 第七章笔记