草庐IT

dart-async

全部标签

c# - Async TestInitialize 保证测试失败

在TestInitialize中进行异步调用是不正确的设计,因为TestInitialize必须在任何TestMethod之前发生并且具有固定的签名。这在任何方面都可以是正确的方法来进行异步TestInitialize吗?privateintval=0;[TestInitialize]publicasyncTaskTestMehod1(){varresult=awaitLongRunningMethod();val=10;}[TestMethod]publicvoidTestMehod2(){Assert.AreEqual(10,val);}有什么想法吗?

c# - async-await 如何不阻塞?

我认为异步方法适合IO工作,因为它们在等待线程时不会阻塞线程,但这实际上怎么可能呢?我假设必须监听某些东西才能触发任务完成,那么这是否意味着阻塞只是移动到了其他地方? 最佳答案 不,阻塞不会移动到其他任何地方。返回可等待类型的BCL方法使用重叠I/O和I/O完成端口等技术来实现完全异步的体验。我有一个recentblogpost描述了它是如何一直工作到物理设备并返回的。 关于c#-async-await如何不阻塞?,我们在StackOverflow上找到一个类似的问题:

c# - 异步加载 ViewModel 中的数据(使用 async 和 await)不使用数据绑定(bind)

我使用默认模板启动了一个手机应用程序,该模板已经定义了一个View模型。我修改了MainViewModel的LoadData()方法以异步调用odata服务。但它不适用于数据绑定(bind)。我已验证调用成功返回但未显示任何结果。LongListSelector的项源绑定(bind)到View模型中的Items属性。这是我对View模型的修改(注意async和await的用法):publicvoidLoadData(){FetchTileViewItems();}privateasyncvoidFetchTileViewItems(){varret=awaitI2ADataServic

c# - 在 async/await 中正确处理 HttpClient 异常

我希望有人能就我在使用HttpClient进行异步/等待异常处理方面面临的问题给我一些启发。我已经编写了一些代码来说明,它正在WindowsPhone8设备和模拟器上执行:privateasyncvoidSearchButton_Click(objectsender,EventArgse){try{HttpClientclient=newHttpClient();System.Diagnostics.Debug.WriteLine("BEGINFAULTYREQUEST:");stringresponse=awaitclient.GetStringAsync("http://www.a

c# - 在库的异步方法中总是使用 'async' 和 'await' 关键字?

总结:在库方法中,什么时候应该使用async和await关键字而不是返回Task直接?我相信我的问题与thisone有关.但是,这个问题是关于.NET4.0的。和TPL,同时我将.NET4.6与async一起使用和await关键字。因此,我认为我的问题可能会得到不同的答案,因为在回答链接问题时这些关键字不存在。说明:我正在为外部WCF服务编写一个简单的包装器,该包装器生成多个SendAsync电话。现在我认为每个包装器方法应该只返回一个Task。直接不用等待。我的理解是async/await应该在应用层使用,不在库中使用。因此,例如,这是我认为我应该为每个包装器方法采用的方法:priv

c# - Async/await 作为协程的替代品

我使用C#迭代器替代协程,它一直运行良好。我想切换到async/await,因为我认为它的语法更清晰并且它给了我类型安全性。Inthis(outdated)blogpost,JonSkeetshowsapossiblewaytoimplementit.我选择了一种稍微不同的方式(通过实现我自己的SynchronizationContext并使用Task.Yield)。这很好用。然后我意识到会有问题;目前协程不必完成运行。它可以在任何让步的地方优雅地停止。我们可能有这样的代码:privateIEnumeratorSleep(intmilliseconds){Stopwatchtimer=

c# - 为什么使用 async 并等待 Task<>?

如果我有一个普通的方法,我想使其异步:publicintFoo(){}我会这样做:publicTaskFooAsync(){returnTask.Run(()=>Foo());}我为什么要这样做:publicasyncTaskFooAsync(){returnawaitTask.Run(()=>Foo());}我打算使用它的方式是:FooAsync().ContinueWith((res)=>{});我希望该方法不间断地运行,但我希望触发回调之类的东西,因此ContinueWith。但是对于第二个版本,使用它有什么意义吗? 最佳答案

c# - 如何将 .net 4.5 Async/Await 示例转换回 4.0

等效的asp.netmvc4.0代码是什么样的?usingSystem.Net;usingSystem.Net.Http;usingSystem.Web.Mvc;usingSystem.Threading.Tasks;usingNewtonsoft.Json;namespaceWeb.Controllers{publicclassHomeController:Controller{privateHttpClienthttpClient=newHttpClient();privatestaticdynamicshots;publicasyncTaskIndex(){if(shots==n

c# - 在viewmodel的构造函数中调用async方法加载数据有警告

我的View包含一个ListView,它显示来自互联网的一些数据,我创建了一个异步方法来加载数据并在我的View模型的构造函数中调用该方法。它有一个警告提示我现在使用await关键字。在构造函数中异步加载数据的任何其他解决方案? 最佳答案 有几个模式可以应用,所有这些都在StephanCleary的帖子中提到过。但是,让我提出一些不同的建议:由于您在WPF应用程序中,我会使用FrameworkElement.Loaded事件并将其绑定(bind)到ViewModel中的ICommand。有界命令将是AwaitableDelegate

c# - async 和 await 是否会提高 ASP.Net 应用程序的性能

我最近读了一篇关于c#-5和新的很好的异步编程特性的文章。我看到它在Windows应用程序中效果很好。我的问题是此功能是否可以提高ASP.Net性能?考虑这两个伪代码:publicTGetData(){vard=GetSomeData();returnd;}和publicasyncTGetData2(){vard=awaitGetSomeData();returnd;}在一个ASP.Net应用程序中,两个代码有区别吗?谢谢 最佳答案 首先,您的第二段代码将返回Task而不是T.最终的答案是“视情况而定”。如果您的页面需要访问多个数据