草庐IT

Async-await

全部标签

c# - 异步方法中的警告消息说它缺少等待运算符

我的asp.netmvc4应用程序中有一个excel下载。当我单击导出按钮时,将调用以下Controller方法。因为我需要它异步完成,所以我在这里使用async和await。publicasyncTaskGenerateReportExcel(){ExcelGeneratorexcel=newExcelGenerator();varfilePath=awaitexcel.ReportExcelAsync(midyearReportViewModel);System.Web.HttpResponseresponse=System.Web.HttpContext.Current.Resp

c# - 异步方法中的警告消息说它缺少等待运算符

我的asp.netmvc4应用程序中有一个excel下载。当我单击导出按钮时,将调用以下Controller方法。因为我需要它异步完成,所以我在这里使用async和await。publicasyncTaskGenerateReportExcel(){ExcelGeneratorexcel=newExcelGenerator();varfilePath=awaitexcel.ReportExcelAsync(midyearReportViewModel);System.Web.HttpResponseresponse=System.Web.HttpContext.Current.Resp

c# - 将 WebClient 方法转换为异步/等待

我有一些要移植到Windows8WinRT的现有代码。代码从URL获取数据,异步调用传递的委托(delegate):privatevoidRequestData(stringuri,Actionaction){varclient=newWebClient();client.DownloadStringCompleted+=(s,e)=>action(e.Result);client.DownloadStringAsync(newUri(uri));}转换为WinRT需要使用HttpClient和异步方法。我已经阅读了一些关于异步/等待的教程,但有点困惑。我怎样才能更改上面的方法,同时保

c# - 将 WebClient 方法转换为异步/等待

我有一些要移植到Windows8WinRT的现有代码。代码从URL获取数据,异步调用传递的委托(delegate):privatevoidRequestData(stringuri,Actionaction){varclient=newWebClient();client.DownloadStringCompleted+=(s,e)=>action(e.Result);client.DownloadStringAsync(newUri(uri));}转换为WinRT需要使用HttpClient和异步方法。我已经阅读了一些关于异步/等待的教程,但有点困惑。我怎样才能更改上面的方法,同时保

c# - C#异步/等待如何与更通用的构造相关,例如F#工作流程还是monad?

C#语言设计一直(从历史上)一直致力于解决特定问题,而不是寻找解决潜在的一般性问题:例如,参见http://blogs.msdn.com/b/ericlippert/archive/2009/07/09/iterator-blocks-part-one.aspx中的“IEnumerablevs.协程”:Wecouldhavemadeitmuchmoregeneral.Ouriteratorblockscanbeseenasaweakkindofcoroutine.Wecouldhavechosentoimplementfullcoroutinesandjustmadeiteratorb

c# - C#异步/等待如何与更通用的构造相关,例如F#工作流程还是monad?

C#语言设计一直(从历史上)一直致力于解决特定问题,而不是寻找解决潜在的一般性问题:例如,参见http://blogs.msdn.com/b/ericlippert/archive/2009/07/09/iterator-blocks-part-one.aspx中的“IEnumerablevs.协程”:Wecouldhavemadeitmuchmoregeneral.Ouriteratorblockscanbeseenasaweakkindofcoroutine.Wecouldhavechosentoimplementfullcoroutinesandjustmadeiteratorb

c# - 如何在控制台应用程序中从 Task.WaitAll() 获取返回值?

我正在使用控制台应用程序作为概念证明,并且新需要获取异步返回值。我发现我需要在main方法中使用Task.WaitAll()以避免需要非法的异步“main()”方法。我现在一直在尝试找出允许我使用泛型或只返回一个我可以转换的对象的重载,但在Main()中。 最佳答案 您不会从Task.WaitAll获得返回值。您只需使用它来等待多个任务完成,然后从任务本身获取返回值。vartask1=GetAsync(1);vartask2=GetAsync(2);Task.WaitAll(task1,task2);varresult1=task1

c# - 如何在控制台应用程序中从 Task.WaitAll() 获取返回值?

我正在使用控制台应用程序作为概念证明,并且新需要获取异步返回值。我发现我需要在main方法中使用Task.WaitAll()以避免需要非法的异步“main()”方法。我现在一直在尝试找出允许我使用泛型或只返回一个我可以转换的对象的重载,但在Main()中。 最佳答案 您不会从Task.WaitAll获得返回值。您只需使用它来等待多个任务完成,然后从任务本身获取返回值。vartask1=GetAsync(1);vartask2=GetAsync(2);Task.WaitAll(task1,task2);varresult1=task1

c# - 单一方法中的多个等待

我有这样的方法:publicstaticasyncTaskSaveAllAsync(){foreach(varkvpinconfigurationFileMap){using(XmlWriterxmlWriter=XmlWriter.Create(kvp.Value,XML_WRITER_SETTINGS)){FieldInfo[]allPublicFields=kvp.Key.GetFields(BindingFlags.Public|BindingFlags.Static);awaitxmlWriter.WriteStartDocumentAsync();foreach(Field

c# - 单一方法中的多个等待

我有这样的方法:publicstaticasyncTaskSaveAllAsync(){foreach(varkvpinconfigurationFileMap){using(XmlWriterxmlWriter=XmlWriter.Create(kvp.Value,XML_WRITER_SETTINGS)){FieldInfo[]allPublicFields=kvp.Key.GetFields(BindingFlags.Public|BindingFlags.Static);awaitxmlWriter.WriteStartDocumentAsync();foreach(Field