问题标签 [async-ctp]
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.
.net - 将重要代码转换为新的 .NET 异步模式 - 如何处理 yield 循环
我正在编写一个库来使用 Azure 表存储。基本模式是给定的 HTTP 请求在内容流中返回一个数字结果,并在标头中返回一个指向下一组结果的指针。当从流中读取结果时,就会产生结果。我正在使用 System.Net.Http 库(以前的 Microsoft.Net.Http),它在最新版本中删除了同步版本的 HttpClient.Send 和其他同步方法。新版本使用任务。我以前用过Tasks,但不是为了这么复杂的东西,而且我很难开始。
已转换为异步模式的调用是:HttpClient.Send、response.Context.ContentReadSteam。我已经清理了代码,以便显示重要部分。
下面是我成功转换的一个示例。
有人对如何将循环/产量转换为新模式有任何建议吗?
谢谢!埃里克
.net - 从方法返回 BlockingCollection 作为 IEnumerable
我正在尝试从 BlockingCollection 支持的方法返回 IEnumerable。代码模式是:
问题是从 Execute() 返回的可枚举总是空的。我见过的所有示例都在任务中迭代 BlockingCollection。在这种情况下,这似乎行不通。
有谁知道我哪里出错了?
为了让事情更清楚一点,我粘贴了我正在执行以填充集合的代码。也许这里有什么导致问题的原因?
c# - ASP.NET MVC 4 Beta 与异步 CTP(版本 3)并排
我首先安装了 Async CTP(版本 3),然后安装了 ASP.NET MVC 4 Beta。但是,我不能使用 async 关键字。
有没有兼容性问题?
对于 ASP .NET MVC 3,这里也有一个类似的问题(在撰写本文时还没有答案)。
编辑:在我安装其中任何一个之前,异步/等待关键字可能会被破坏。(我还在调查中。)
c# - 应用墓碑时优雅地处理后台任务
我正在使用异步 ctp 并且有一个在后台运行的任务。它工作得很好,但在运行并且应用程序被墓碑化时会引发异常。该异常与数据库上下文为空有关。
文档说:
当应用程序被墓碑化时,底层数据库连接将关闭。要在墓碑化后返回到之前的状态,应用程序需要重做它在墓碑化之前执行的所有查询。
我试过使用cancellationtokesource,但这似乎不起作用,因为连接已经关闭。知道如何处理这样的事情吗?
c# - 为什么使用异步请求而不是使用更大的线程池?
在荷兰的 Techdays 期间,Steve Sanderson 做了一个关于C#5、ASP.NET MVC 4 和异步 Web的演讲。
他解释说,当请求需要很长时间才能完成时,线程池中的所有线程都会变得忙碌,新的请求必须等待。服务器无法处理负载,一切都变慢了。
然后他展示了使用异步 webrequests 如何提高性能,因为工作随后被委托给另一个线程,并且线程池可以快速响应新的传入请求。他甚至对此进行了演示,并显示 50 个并发请求首先需要 50 * 1 秒,但异步行为总共只需要 1.2 秒。
但是看到这个之后,我仍然有一些疑问。
为什么我们不能只使用更大的线程池?是不是使用 async/await 来更慢地启动另一个线程,然后从一开始就增加线程池?是不是我们运行的服务器突然多了线程之类的?
来自用户的请求仍在等待异步线程完成。如果池中的线程正在做其他事情,“UI”线程如何保持忙碌?Steve 提到了“一个知道某事何时完成的智能内核”。这是如何运作的?
c# - 异步等待关键字错误
我添加了 AsyncCtpLibrary v.3。从异步网页中获取了一些示例代码。把它包裹在一个 TestFixture 中来玩。
我收到错误:任何想法为什么?
错误 1 - 类、结构或接口成员声明中的标记“void”无效
错误 2 - ; 预期的
代码:
.net - 如何在异步方法中测试异常
我正在使用 Visual Studio 11 Beta。
鉴于此代码:
由于它是一种异步方法,因此异常似乎不会冒泡到调用方法。我有因此失败的测试用例:
在这种情况下,ExecuteNonQuery 的验证部分显然会抛出异常,我在调试时看到它抛出异常。
我已将测试方法更改为 async 并将语法更改为await Task.Run(() => Target.ExecuteNonQuery()),但无济于事。
问题:
- ExecuteNonQuery 是否完全抛出异常?
- 为什么 ExecuteNonQueryFail1 没有看到异常?
- 如何更改测试方法或方法本身,以正确处理异常并通过测试用例,而不放弃方法的异步性质?
c# - 使用异步 CTP 在单个函数中异步 HTTP 发布数据
我正在尝试使用 Async CTP 构建运行异步并返回值的单个函数。
这是我的示例代码。我不知道为什么它在返回时不填充“resp”变量。
我也试过了,但程序冻结了(什么也不做,不仅仅是一会儿)。也许任何更正都会有所帮助。
c# - 返回值时异步 CTP 方法冻结
我试图创建一个返回值的异步方法。使用该方法而不返回时一切正常。可以处理数据,但是添加return子句时出现问题。程序完全冻结没有任何错误或一段时间。
请看代码:
c# - VS11 中的 WebClient.DownloadStringTaskAsync(Uri,CancellationToken) 在哪里
在异步 CTP 中有一个带有签名的扩展方法
这是在VS11中的什么地方?
我是否需要安装 Async CTP 才能使用此方法?