草庐IT

Asynchronous

全部标签

c# - 异步编程和多线程有什么区别?

我认为它们基本上是同一件事——编写在处理器之间拆分任务的程序(在具有2个以上处理器的机器上)。然后我在读this,它说:Asyncmethodsareintendedtobenon-blockingoperations.Anawaitexpressioninanasyncmethoddoesn’tblockthecurrentthreadwhiletheawaitedtaskisrunning.Instead,theexpressionsignsuptherestofthemethodasacontinuationandreturnscontroltothecalleroftheasy

c# - 异步编程和多线程有什么区别?

我认为它们基本上是同一件事——编写在处理器之间拆分任务的程序(在具有2个以上处理器的机器上)。然后我在读this,它说:Asyncmethodsareintendedtobenon-blockingoperations.Anawaitexpressioninanasyncmethoddoesn’tblockthecurrentthreadwhiletheawaitedtaskisrunning.Instead,theexpressionsignsuptherestofthemethodasacontinuationandreturnscontroltothecalleroftheasy

c# - 同步调用异步方法

我有一个异步方法:publicasyncTaskGenerateCodeAsync(){stringcode=awaitGenerateCodeService.GenerateCodeAsync();returncode;}我需要从一个同步方法调用这个方法。我怎样才能做到这一点而不必复制GenerateCodeAsync方法以使其同步工作?更新目前还没有找到合理的解决方案。但是,我看到HttpClient已经实现了这个模式using(HttpClientclient=newHttpClient()){//asyncHttpResponseMessageresponseAsync=awa

c# - 同步调用异步方法

我有一个异步方法:publicasyncTaskGenerateCodeAsync(){stringcode=awaitGenerateCodeService.GenerateCodeAsync();returncode;}我需要从一个同步方法调用这个方法。我怎样才能做到这一点而不必复制GenerateCodeAsync方法以使其同步工作?更新目前还没有找到合理的解决方案。但是,我看到HttpClient已经实现了这个模式using(HttpClientclient=newHttpClient()){//asyncHttpResponseMessageresponseAsync=awa

c# - .NET Reactive Framework 的良好介绍

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion除了Microsoft文档之外,是否有关于MicrosoftReactive(Rx)框架的良好介绍和教程?此外,Reactive使使用传统异步编码技术难以解决的编程问题变得更容易的一个很好的例子(带有代码)是什么?

c# - .NET Reactive Framework 的良好介绍

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion除了Microsoft文档之外,是否有关于MicrosoftReactive(Rx)框架的良好介绍和教程?此外,Reactive使使用传统异步编码技术难以解决的编程问题变得更容易的一个很好的例子(带有代码)是什么?

c# - 捕获由 async void 方法抛出的异常

使用Microsoft的异步CTPfor.NET,是否可以在调用方法中捕获异步方法抛出的异常?publicasyncvoidFoo(){varx=awaitDoSomethingAsync();/*Handletheresult,butsometimesanexceptionmightbethrown.Forexample,DoSomethingAsyncgetsdatafromthenetworkandthedataisinvalid...aProtocolExceptionmightbethrown.*/}publicvoidDoFoo(){try{Foo();}catch(Pro

c# - 捕获由 async void 方法抛出的异常

使用Microsoft的异步CTPfor.NET,是否可以在调用方法中捕获异步方法抛出的异常?publicasyncvoidFoo(){varx=awaitDoSomethingAsync();/*Handletheresult,butsometimesanexceptionmightbethrown.Forexample,DoSomethingAsyncgetsdatafromthenetworkandthedataisinvalid...aProtocolExceptionmightbethrown.*/}publicvoidDoFoo(){try{Foo();}catch(Pro

c# - async/await - 何时返回 Task 与 void?

在什么场景下使用publicasyncTaskAsyncMethod(intnum)代替publicasyncvoidAsyncMethod(intnum)我能想到的唯一场景是,如果您需要任务能够跟踪其进度。另外,在下面的方法中,async和await关键字是不是就不需要了?publicstaticasyncvoidAsyncMethod2(intnum){awaitTask.Factory.StartNew(()=>Thread.Sleep(num));} 最佳答案 通常,您会想要返回一个Task。主要的异常(exception)

c# - async/await - 何时返回 Task 与 void?

在什么场景下使用publicasyncTaskAsyncMethod(intnum)代替publicasyncvoidAsyncMethod(intnum)我能想到的唯一场景是,如果您需要任务能够跟踪其进度。另外,在下面的方法中,async和await关键字是不是就不需要了?publicstaticasyncvoidAsyncMethod2(intnum){awaitTask.Factory.StartNew(()=>Thread.Sleep(num));} 最佳答案 通常,您会想要返回一个Task。主要的异常(exception)