问题标签 [async-await]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 新的 C# Async 功能的一个好的非网络示例是什么?
微软刚刚宣布了新的 C# Async 特性。到目前为止,我看到的每个示例都是关于从 HTTP 异步下载内容的。当然还有其他重要的异步事情?
假设我没有编写新的 RSS 客户端或 Twitter 应用程序。C# Async 对我来说有什么有趣的地方?
编辑我有一个啊哈!观看安德斯的 PDC 会议时的片刻。过去,我曾研究过使用“观察者”线程的程序。这些线程等待某事发生,例如等待文件更改。他们不做工作,他们只是闲着,当有事情发生时通知主线程。这些线程可以用新模型中的等待/异步代码替换。
c# - 异步在 C# 中如何工作?
Microsoft今天(2010 年 10 月 28 日)宣布了Visual Studio Async CTPasync
,它在 C#/VB 中引入了andawait
关键字,用于异步方法执行。
首先,我认为编译器会将关键字转换为线程的创建,但根据白皮书和 Anders Hejlsberg 的PDC 演示文稿(31:00),异步操作完全发生在主线程上。
如何在同一线程上并行执行操作?它在技术上是如何实现的,以及在 IL 中实际翻译的功能是什么?
c# - C# 5.0 的 async-await 特性与 TPL 有何不同?
我看不出 C#(和 VB)的新异步功能和 .NET 4.0 的Task Parallel Library之间有什么不同。以 Eric Lippert的代码为例:
该await
关键字似乎有两个不同的目的。第一次出现 ( FetchAsync
) 似乎意味着“如果稍后在方法中使用此值并且其任务未完成,请等到它完成后再继续。” 第二个实例 ( archive
) 似乎意味着“如果此任务尚未完成,请立即等待它完成。” 如果我错了,请纠正我。
难道就不能这么简单地写成这样吗?
我已将第一个替换await
为Task.Result
实际需要该值的位置,将第二个await
替换Task.Wait()
为实际发生等待的位置。该功能(1)
已经实现,并且(2)
在语义上更接近代码中实际发生的情况。
我确实意识到一个async
方法被重写为状态机,类似于迭代器,但我也看不到它带来了什么好处。任何需要另一个线程来操作的代码(例如下载)仍然需要另一个线程,并且任何不需要的代码(例如从文件中读取)仍然可以利用 TPL 仅与单个线程一起工作。
我显然在这里遗漏了一些巨大的东西。任何人都可以帮助我更好地理解这一点吗?
c# - 新的 C# 等待功能有什么作用?
谁能解释一下这个await
功能是做什么的?
c# - 为什么 WebClient.DownloadStringTaskAsync() 阻塞?- 新的异步 API/语法/CTP
由于某种原因,下面的程序启动后会出现暂停。我相信这WebClient().DownloadStringTaskAsync()
就是原因。
据我了解,我的程序应该立即从 0 开始计数到 15。难道我做错了什么?
我对原始的 Netflix 下载示例(您使用CTP获得)遇到了同样的问题 - 在按下搜索按钮后,用户界面首先冻结 - 一段时间后,它在加载下一部电影时有响应。我相信它并没有在 Anders Hejlsberg 在 PDC 2010 上的演讲中被冻结。
还有一件事。什么时候代替
我使用自己的方法:
这是:
它可以正常工作。我的意思是它不会加载任何东西,但它会立即启动并且不会阻塞主线程,同时执行它的工作。
编辑
好的,我现在相信的是:WebClient.DownloadStringTaskAsync
功能被搞砸了。它应该在没有初始阻塞期的情况下工作,如下所示:
c# - C# 5.0 async/await 特性和 Rx - Reactive Extensions
我想知道新的 C# 5.0 异步特性对 Rx - Reactive Extensions 意味着什么?它似乎不是替代品,但它们似乎重叠 -Task
和IObservable
.
c# - c# 5.0 中新的异步特性如何用 call/cc 来实现?
我一直在关注有关async
c# 5.0 中新功能的新公告。我对延续传递风格和新的 c# 编译器对代码的转换有基本的了解,就像Eric Lippert 的帖子中的这段代码:
我知道有些语言通过 call-with-current-continuation ( callcc
) 原生地实现了延续,但我并不真正理解它是如何工作的或它究竟做了什么。
所以这里的问题是:如果安德斯等人。决定咬紧牙关,只callcc
在 c# 5.0 中实现而不是async
/await
特殊情况,上面的代码片段会是什么样子?
c# - Agent/MailboxProcessor in C# using new async/await
This question combines two topics I don't fully understand
Reading through a paper about async in F#, I came across the topic of Agents/MailboxProcessors, which can be used to implement reactive state machines. Could the new async/await functionality in C#5 be used to implement something similar in C#, or is there already something analogue that would be better suited?
c# - 香草 .Net 4 上的 Visual Studio 异步 CTP?
按照我的理解,C# 5 CTP 中的新 Async-Await 功能应该全部在编译器中实现。这应该意味着用 CTP 编译的代码应该能够在 vanilla .Net 4 上运行?
它可以?
c# - WCF 服务调用异步其他 WCF 服务
我读过基于任务的异步模式,听起来很棒。现在,我有一个 WCF 服务需要调用其他 WCF 服务。这些服务返回不同的结果。异步如何使用新模式调用这些服务并等待全部完成?