草庐IT

SpringBoot中异步注解@Async介绍

全部标签

c# - 在 MVC 5 中的 Action Filters 中调用异步方法

我正在编写一个使用ActionFilterAttribute的Action过滤器(继承自HttpClient)将数据发布到OnResultExecuted中的外部服务器方法。HttpClient有方法PostAsync它返回一个可等待的Task.publicoverridevoidOnResultExecuted(ResultExecutedContextfilterContext){using(varclient=newHttpClient()){vartask=client.PostAsync(GetUri(),GetContent());varresult=task.Result

c# - Async/Await VS Task.Run : When to use ? 如何使用?

好吧,我希望我掌握了async/await的基础知识,但仍有一些问题在我脑海中挥之不去。但是现在我说的就是这个问题了。假设在这个简单的例子中staticvoidMain(string[]args){Method();Console.WriteLine("MainThread");Console.ReadLine();}publicasyncstaticvoidMethod(){awaitTask.Run(newAction(LongTask));Console.WriteLine("NewThread");}publicstaticvoidLongTask(){Thread.Sleep

c# - 是否可以异步提交/回滚 SqlTransaction?

我正在尝试以异步方式提交/回滚SqlTransaction。但看起来不支持异步。有什么方法可以在不使用原始SQL启动事务的情况下使其异步? 最佳答案 看起来不像。通过相关代码,所有其他方法都是异步的(同步版本是特例),而SqlTransaction和其他相关代码只是同步的。对于重叠的部分,SqlTransaction只是同步等待任务完成(例如,处理重新连接时)。事实上,当您深入了解代码时,事务操作明确禁止任何异步操作,因此不包括异步事务操作似乎是设计使然。如果您确实找到了解决方法,请牢记这一点-系统并非设计为允许并发操作,因此始终一

c# - 等待异步 API 的 Specflow 步骤

如果DoAyncStuff()方法中发生故障,我们正在尝试获取以下场景步骤来中断测试:[Given(@"Thereissomething")]publicasyncTaskGivenSomething(){awaitDoStuff();}privateasyncTaskDoStuff(){awaitTask.Run(()=>Thread.Sleep(1000));thrownewApplicationException("Boom");}但在您使用.Wait()或.Result之前,它实际上是一个愉快的绿色运行:[Given(@"Thereissomething")]publicvoi

c# - 如何使用 Visual Studio - 生成异步 WCF 调用?

我的OperationContract:publicListGetMessages(){Listmessages=newList();foreach(Messagemin_context.Messages.ToList()){messages.Add(newMessageDTO(){MessageID=m.MessageID,Content=m.Content,Date=m.Date,HasAttachments=m.HasAttachments,MailingListID=(int)m.MailingListID,SenderID=(int)m.SenderID,Subject=m.

c# - "async void"WPF 命令处理程序中的异常处理

我正在审查我同事的一些WPF代码,这是一个库的UserControl-basedcomponentswithalotofasyncvoid事件和命令处理程序。这些方法目前没有在内部实现任何错误处理。代码简述:privateasyncvoidNewCommand_Executed(objectsender,ExecutedRoutedEventArgse){//dosomefakeasyncwork(andmaythrowiftimeout在NewCommand_Executed中抛出但未观察到的异常只能在全局级别处理(例如,使用AppDomain.CurrentDomain.Unhan

c# - async/await 单元测试代码覆盖率

如何为异步/等待方法编写单元测试,我使用的是VisualStudio2013。假设我们有一个异步方法:publicasyncTaskDoSomethingAsync(){...await_service.DoInternalAsync();...}由于我使用的是最新版本的VisualStudio,它对异步方法单元测试有很好的支持:[TestMethod]publicasyncTaskDoSomthingAsyncTest(){...await_objectUnderTest.DoSomethingAsync();//howtoverifytheresult???hereiswhatId

c# - SSH.Net异步文件下载

我正在尝试使用SSH.NET从SFTP服务器异步下载文件。如果我同步执行它,它工作正常但是当我异步执行时,我得到空文件。这是我的代码:varport=22;stringhost="localhost";stringusername="user";stringpassword="password";stringlocalPath=@"C:\temp";using(varclient=newSftpClient(host,port,username,password)){client.Connect();varfiles=client.ListDirectory("");vartasks=

c# - 在 .Select lambda 中使用 async/await

我正在使用Asp.NetCoreIdentity并尝试简化一些将用户列表及其角色转换到ViewModel的代码。这段代码有效,但在试图简化它的过程中,我陷入了错误和好奇的疯狂漩涡中。这是我的工作代码:varallUsers=_userManager.Users.OrderBy(x=>x.FirstName);varusersViewModel=newList();foreach(varuserinallUsers){vartempVm=newUsersViewModel(){Id=user.Id,UserName=user.UserName,FirstName=user.FirstNa

c# - 异步方法和异步委托(delegate)

C#3.0简述说异步方法和异步委托(delegate)看起来很相似,但行为却大不相同.这是书中关于两者的说法。异步方法很少或从不阻塞任何线程。Begin方法可能不会立即返回给调用者。商定的协议(protocol),不支持C#语言。异步委托(delegate)可以阻止任何时间长度BeginInvoke立即返回给调用者。内置编译器支持。书上还说,异步方法的目的是让很多任务在很少的线程上运行;异步委托(delegate)的目的是与调用者并行执行任务。当我通过反射器查看System.IO.Stream类中的BeginRead()方法时,它使用委托(delegate)并调用BeginInvoke