async-await相关内容

创建完成的任务

我想创建一个完整的工作(而不是任务< T> )。是不是有什么内置到.NET做到这一点? 一个相关的问题: 创建一个完成任务< T> 解决方案 在最新的.NET程序(V4版本。 6)是增加了这一点,一个内置的 任务completedTask = Task.CompletedTask; 该属性是作为一个没有锁单,所以你会的几乎的始终使用相同的完成任务。 ..
发布时间:2015-11-24 15:05:30 C#/.NET

AspNetSynchronizationContext伺机在ASP​​.NET延续

我注意到一个意外(和我说,冗余)后线程切换等待里面异步的ASP.NET Web API控制器的方法。 例如,下面我希望看到相同的 ManagedThreadId 在位置#2和3#,但大多数时候,我看到#3在不同的线程: 公共类的TestController:ApiController { 公共异步任务<字符串>的GetData() { 的Debug. ..
发布时间:2015-11-24 14:35:21 C#/.NET

我为什么要preFER单曲“等待Task.WhenAll”在多个等待着?

在情况下,我不关心任务完成的顺序,只需要他们全部完成,我仍然应该使用等待Task.WhenAll 而不是多个等待?例如,为 DoWord2 低于preferred方法 DoWork1 (为什么?): 使用系统; 使用System.Threading.Tasks; 命名空间ConsoleApp { 类节目 { 静态异步任务<字符串> DoTaskAsy ..

转换异步/等待到Task.ContinueWith

此问题是由评论这个触发: 如何备份端口非线性异步/计谋 code到.NET 4.0没有 Microsoft.Bcl.Async ? 在链接的问题,我们有一个的WebRequest 运行,我们要重新尝试的次数有限,如果它不断失败。该异步/计谋 code可能是这样的: 异步任务< HttpWebResponse> GetResponseWithRetryAsync(字符串URL,IN ..
发布时间:2015-11-24 14:24:34 C#/.NET

重温Task.ConfigureAwait(continueOnCapturedContext:假)

太长时间阅读使用 Task.ConfigureAwait(continueOnCapturedContext:FALSE)可能会引入多余的线程切换。我正在寻找一个一致的解决方案这一点。 龙版本。的主要设计背后的目标 ConfigureAwait(假)是减少多余的 SynchronizationContext.Post 继续回调等待,在可能的情况。这通常意味着更少的线程切换,少工作,对UI线程。然 ..
发布时间:2015-11-24 14:24:26 C#/.NET

不同形式的WCF服务合同接口

看来我可以以下三种不同版本的同一WCF合同接口(API)之间自由切换,而不会破坏客户​​端: [的ServiceContract] 接口IService { //无论同步 // [OperationContract的] // INT的someMethod(INT ARG); //或点击 [OperationContract的] 任务< I ..
发布时间:2015-11-24 14:20:38 C#/.NET

图案自我消除和重新启动任务

有没有推荐的既定模式自我消除和重新启动任务? 例如,我正在后台拼写检查程序的API。拼写检查会话被包装为工作。每一个新的会话应该取消previous之一,并等待其结束(正确地重复使用资源,如拼写检查服务提供商等)。 我已经出来是这样的: 类拼写检查 { 任务pendingTask = NULL; //未决会议 CancellationTokenSource CTS = NUL ..
发布时间:2015-11-24 14:19:58 C#/.NET

同步等待异步操作,为什么等待()这里冻结计划

preface :我在寻找一个解释,而不仅仅是一个解决方案。我已经知道了解决方案。 尽管已经花了好几天研究有关基于任务的异步模式(TAP),异步MSDN文章和等待,我还是有点困惑的一些细节了。 我正在写一个记录器的Windows应用商店的应用程序,我想支持异步和同步记录。异步方法遵循TAP,同步的人应隐藏了这一切,并期待携手像普通的方法。 这是异步日志的核心方法: 专用异步任务WriteT ..
发布时间:2015-11-24 13:58:00 C#/.NET

可重复使用的模式转换事件到任务

我想有一个通用的可重复使用的一块$ C $下的包装EAP模式作为任务,类似于例如: 专用异步无效Form1_Load的(对象发件人,EventArgs的) { 等待TaskExt.FromEvent< EventArgs的>( 处理器=> this.webBrowser.DocumentCompleted + = 新WebBrow ..
发布时间:2015-11-24 13:56:01 C#/.NET

任务排序和重新entracy

我有下面的情况下,我认为可能是很常见的: 有一个任务(一个用户界面命令处理程序),它可以完成同步或异步。 命令可能到达的速度比它们得到处理。 如果已经存在对应于一命令挂起任务,则新的命令处理程序的任务应该被排队,并依次进行处理。 每个新任务的结果可能依赖于previous任务的结果。 取消应注意观察,但我想离开它这个问题的简单的范围之内。此外,线程安全(并发)不是必需的,但重入必须得 ..
发布时间:2015-11-24 13:53:51 C#/.NET

在并行的foreach嵌套计谋

在一个地铁的应用程序,我需要执行一些WCF的调用。必须作出呼叫的数量是足够的,我需要做他们在一个并行循环。在并行循环中存在的问题awaitable WCF调用返回之前。 你会如何重构这个按预期工作? VAR IDS =新的名单,其中,串>(){“1”,“2”,“3”,“4”,“5”,“6”,“7” ,“8”,“9”,“10”}; VAR的客户=新System.Collections.C ..
发布时间:2015-11-24 13:50:29 C#/.NET

等待操作者只能异步方法中使用

我试图做一个简单的程序到Visual Studio 2012年。我一般用BackgroundWorkers运行中测试新的.NET异步功能耗时code异步方式,但有时它似乎是一个麻烦的比较操作简单(但价格昂贵)。新的异步修饰符看起来这将是伟大的使用,但不幸的是我似乎无法得到一个简单的测试准备。 下面是我的code,在C#控制台应用程序: 静态无效的主要(字串[] args) { 字符串MarsRe ..
发布时间:2015-11-24 13:46:40 C#/.NET

我应该避免“异步无效”事件处理程序?

我知道这通常被认为是一个坏主意,用火和忘记异步无效方法来启动的任务,因为没有跟踪挂起的任务,它是棘手的处理可能这种方法中抛出的异常。 我应该尽量避免使用异步无效事件处理程序,以及?的例如, 专用异步无效的Form_Load(对象发件人,发送System.EventArgs) { 等待Task.Delay(2000); //做异步工作 // ... } 我 ..
发布时间:2015-11-24 11:57:42 C#/.NET

使用异步调用WCF服务模式/待机

我产生了代理基于任务的操作。 应如何服务正确(处置的 ServiceClient 和的OperationContext 之后)使用异步/计谋调用? 我的第一个尝试是: 公共异步任务< HomeInfo> GetHomeInfoAsync(DateTime时间戳) { 使用(VAR帮手=新ServiceHelper< ServiceClient,的ServiceCon ..
发布时间:2015-11-24 11:55:48 C#/.NET

使用异步/等待多个任务

我使用的API客户端是完全 - 异步,即每个操作或者返回工作或任务< T> ,例如: 静态异步任务DoSomething的(INT SITEID,诠释postId,IBlogClient客户端) { 等待client.DeletePost(SITEID,postId); //调用API客户端 Console.WriteLine(“已删除后{0}”,SITEID); } ..
发布时间:2015-11-24 11:53:11 C#/.NET

消防和忘记asp.net mvc的异步方法

一般的答案,如这里 和的这里发射后忘了问题是不使用异步/计谋,而是利用Task.Run或TaskFactory.StartNew传递同步方法来代替。然而,有时候,我想火,忘记该方法是异步,没有相当的同步方法。 更新注意/警告:作为斯蒂芬·克利里指出的下方,是很危险的继续工作的请求已发送的响应之后。其原因是因为在AppDomain可能会被关闭,而这项工作仍在进行中。看到他的反应有关详细信息的链接。 ..
发布时间:2015-11-24 11:51:30 C#/.NET

如何使用非线程安全的异步/等待API和使用模式的ASP.NET Web API?

这个问题已经触发 EF数据上下文 - 异步/等待和放大器;多线程。我已经回答了这个问题,但没有提供任何最终的解决方案。 原来的问题是,有很多有用的.NET API的有(像微软实体框架的也有一些既定code模式落入同一类别,比如调用与WCF服务代理 使用(VAR docClient = CreateDocumentServiceClient()) 使用(新OperationContextScope ..
发布时间:2015-11-24 11:36:46 C#/.NET

如何以及何时使用`async`和`await`

这是我的理解主要事情一个异步和等待做的是让code容易写入和读取 - 但使用它们等于产卵后台线程来执行长时间的逻辑 目前,我正在尝试最基本的例子。我行内添加了一些意见。你能澄清一下吗? //我不uderstand为什么这个方法必须标记为“异步”。 私人异步无效的button1_Click(对象发件人,EventArgs的) { 任务< INT>访问= DoSomethin ..
发布时间:2015-11-24 11:31:01 C#/.NET