TaskAwaiter<TResult> 结构
- 参考网址:https://docs.microsoft.com/zh-cn/dotnet/api/system.runtime.compilerservices.taskawaiter-1?view=net-5.0
- 命名空间:
- System.Runtime.CompilerServices
- 程序集:
- System.Runtime.dll
表示等待异步任务完成的对象并为结果提供参数。
此 API 支持产品基础结构,不能在代码中直接使用。
public struct TaskAwaiter<TResult> : System.Runtime.CompilerServices.ICriticalNotifyCompletion
类型参数
- TResult
任务的结果。
- 继承
- 实现
注解
此类型及其成员旨在供编译器使用。
属性
| IsCompleted |
此 API 支持产品基础结构,不能在代码中直接使用。 获取一个值,该值指示异步任务是否已完成。 |
方法
| GetResult() |
此 API 支持产品基础结构,不能在代码中直接使用。 结束异步任务完成的等待。 |
| OnCompleted(Action) |
此 API 支持产品基础结构,不能在代码中直接使用。 将操作设置为当 TaskAwaiter<TResult> 对象停止等待异步任务完成时执行。 |
| UnsafeOnCompleted(Action) |
此 API 支持产品基础结构,不能在代码中直接使用。 计划与此 awaiter 相关异步任务的延续操作。 |
static void Main(string[] args)
{
Console.WriteLine("hello word");
TaskAwaiter<string> taw = getStrAsync().GetAwaiter();
var text = taw.GetResult();
Console.WriteLine(text);
Console.WriteLine("hello word end..");
Console.ReadLine();
}
static string getStr()
{
return "str";
}
static Task<string> getStrAsync()
{
var t1 = new Task<string>(getStr);
t1.Start();
return t1;
}

TaskAwaiter<TResult> 结构的更多相关文章
- C#与C++的发展历程第三 - C#5.0异步编程巅峰
系列文章目录 1. C#与C++的发展历程第一 - 由C#3.0起 2. C#与C++的发展历程第二 - C#4.0再接再厉 3. C#与C++的发展历程第三 - C#5.0异步编程的巅峰 C#5.0 ...
- 【转】剖析异步编程语法糖: async和await
一.难以被接受的async 自从C#5.0,语法糖大家庭又加入了两位新成员: async和await. 然而从我知道这两个家伙之后的很长一段时间,我甚至都没搞明白应该怎么使用它们,这种全新的异步编程模 ...
- 任务(task)
任务概述 线程(Thread)是创建并发的底层工具,因此有一定的局限性(不易得到返回值(必须通过创建共享域):异常的捕获和处理也麻烦:同时线程执行完毕后无法再次开启该线程),这些局限性会降低性能同时影 ...
- [C#]剖析异步编程语法糖: async和await
一.难以被接受的async 自从C#5.0,语法糖大家庭又加入了两位新成员: async和await. 然而从我知道这两个家伙之后的很长一段时间,我甚至都没搞明白应该怎么使用它们,这种全新的异步编程模 ...
- 走进Task(2):Task 的回调执行与 await
目录 前言 Task.ContinueWith ContinueWith 的产物:ContinuationTask 额外的参数 回调的容器:TaskContinuation Task.Continue ...
- C#基础系列——异步编程初探:async和await
前言:前面有篇从应用层面上面介绍了下多线程的几种用法,有博友就说到了async, await等新语法.确实,没有异步的多线程是单调的.乏味的,async和await是出现在C#5.0之后,它的出现给了 ...
- (译)关于async与await的FAQ
传送门:异步编程系列目录…… 环境:VS2012(尽管System.Threading.Tasks在.net4.0就引入,在.net4.5中为其增加了更丰富的API及性能提升,另外关键字”async” ...
- Async/Await FAQ
From time to time, I receive questions from developers which highlight either a need for more inform ...
- 深入探究 WinRT 和 await
在最近发布的使用 Windows 运行时中异步性来始终保持应用程序能够快速流畅地运行这篇博文中,包含了一些如何在 C# 和 Visual Basic 中使用 await 关键字的示例,允许开发人员在使 ...
随机推荐
- pxe+kickstart部署多个版本的Linux操作系统(下)---实践篇
我们在企业运维环境中,难免会遇到使用多个Linux操作系统的情况,如果每天都需要安装不同版本的Linux系统的话,那么使用Kickstart只能安装一种版本的Linux系统的方法则显得有些捉襟 ...
- SDN开发环境搭建以及Mininet编程
一.实验内容 搭建如下网络拓扑,并熟悉相关指令. 二.搭建开发环境 2.1 开发环境搭建 2.1.1下载ubuntu镜像文件 镜像下载地址 https://www.ubuntu.com/downl ...
- Leetcode3.无重复字符的最长子串——简洁易懂
> 简洁易懂讲清原理,讲不清你来打我~ 输入字符串,找到无重复.最长.子串,输出长度 ੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- sql注入漏洞笔记随笔
sql注入是从1998年出现的,是一个十分常见的漏洞,它是OWASP top10的第一名(注入) 在了解sql注入之前,我们需要先了解web框架 webapp:web网站,这种方式它采用的是B/S架构 ...
- vulnhub-靶机Lampiao
目标信息:攻击机IP地址:192.1681.10 Lampiao靶机IP地址:192.168.1.12 DC-1靶机IP地址:192.168.1.7 目的:获取靶机root权限和靶机设置的所有flag ...
- Linux命令(九)之安装mysql
.personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...
- Run Clojure Script with External Dependencies without leiningen
The normal way of deploy clojure files is using leiningen. But if we have no leiningen, or the scrip ...