草庐IT

c# - 尝试在 : await Task. 之外捕获 Run(()

在awaitTask.Run(()=>之外的trycatch是否有意义,或者仅在await内部使用它们?privateasyncvoidTest(){try{awaitTask.Run(()=>{try{DoingSomething();}catch(Exceptionex){log.Error(ex.Message);}});}catch(Exceptionex){log.Error(ex.Message);}} 最佳答案 如果你处理Exception在委托(delegate)内部(在您的情况下仅用于记录目的),await在正常情

c# - await Task.CompletedTask 是为了什么?

我使用WindowsTemplateStudio创建了UWP应用程序在Build2017上引入的。下面的类是它生成的代码的一部分。publicclassSampleModelService{publicasyncTask>GetDataAsync(){awaitTask.CompletedTask;//();data.Add(newSampleModel{Title="Loremipsumdolorsit1",Description="Loremipsumdolorsitamet",Symbol=Symbol.Globe});data.Add(newSampleModel{Title=

c# - 将 async/await 与 DataReader 一起使用? (没有中间缓冲区!)

我的目标很简单,我想进行异步I/O调用(使用异步等待)-但是:不使用DataFlow依赖项(likeinthisanswer)没有中间缓冲区(notlikethisanswer)Projector函数应作为参数发送。(notlikethisanswer)好的。目前这是我的代码,它的工作是从数据库中读取并将每一行投影到FuncpublicIEnumerableGetSomeData(stringsql,Funcprojector){using(SqlConnection_conn=newSqlConnection(@"DataSource=...")){using(SqlCommand_

c# - 将 await 与异步数据库调用一起使用有什么好处

我只是在查看默认的MVC5项目以及它如何在Controller中使用异步。我想知道与简单地使用同步调用相比,异步在这里提供了哪些好处:[HttpPost][ValidateAntiForgeryToken]publicasyncTaskDisassociate(stringloginProvider,stringproviderKey){ManageMessageId?message=null;//whyuseanasyncdatabasecallherewithawaitinsteadofjustusingasynchronousone?IdentityResultresult=aw

c# - 'await' 运算符只能与异步 lambda 表达式一起使用

这个问题在这里已经有了答案:The'await'operatorcanonlybeusedwithinanasynclambdaexpression(2个答案)关闭8年前。我正在尝试将文件列表复制到目录中。我正在使用异步/等待。但是我遇到了这个编译错误The'await'operatorcanonlybeusedwithinanasynclambdaexpression.Considermarkingthislambdaexpressionwiththe'async'modifier.我的代码是这样的asyncTaskCopyFilesToFolder(ListfileList,IPr

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# - 等待和异步属性中的方法错误 'Cannot await ' System.Threading.Tasks.Task'

我已经为.NETFramework4、Silverlight4和5以及WindowsPhone7.5和8安装了NuGetPackageAsync。Version1.0.16我使用的是Microsoft.NET4.0,但由于虚拟主机包限制,我无法升级。(可悲!)我的测试代码:(我正在执行LinqtoSQL查询代替Thread.Sleep)publicclassSearch{publicasyncTask>GetResults(stringSearchString){awaitSystem.Threading.Tasks.Task.Factory.StartNew(()=>Thread.S

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

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