草庐IT

dart-async

全部标签

c# - 新的 C# 5.0 'async' 和 'await' 关键字是否使用多核?

添加到C#5.0语言的两个新关键字是async和await,两者协同工作以异步运行C#方法而不阻塞调用线程。我的问题是,这些方法是否真的利用了多核并并行运行,或者异步方法是否与调用方在同一个线程核心中运行? 最佳答案 TwonewkeywordsaddedtotheC#5.0languageareasyncandawait,bothofwhichworkhandinhandtorunaC#methodasynchronouslywithoutblockingthecallingthread.这理解了该功能的目的,但它给了async/

c# - 新的 C# 5.0 'async' 和 'await' 关键字是否使用多核?

添加到C#5.0语言的两个新关键字是async和await,两者协同工作以异步运行C#方法而不阻塞调用线程。我的问题是,这些方法是否真的利用了多核并并行运行,或者异步方法是否与调用方在同一个线程核心中运行? 最佳答案 TwonewkeywordsaddedtotheC#5.0languageareasyncandawait,bothofwhichworkhandinhandtorunaC#methodasynchronouslywithoutblockingthecallingthread.这理解了该功能的目的,但它给了async/

c# - 如何将 Async 与 ForEach 一起使用?

在使用ForEach时是否可以使用Async?下面是我正在尝试的代码:using(DataContextdb=newDataLayer.DataContext()){db.Groups.ToList().ForEach(i=>async{awaitGetAdminsFromGroup(i.Gid);});}我收到错误:Thename'Async'doesnotexistinthecurrentcontextusing语句所在的方法设置为async。 最佳答案 List.ForEach与async的配合不是特别好(出于同样的原因,LI

c# - 如何将 Async 与 ForEach 一起使用?

在使用ForEach时是否可以使用Async?下面是我正在尝试的代码:using(DataContextdb=newDataLayer.DataContext()){db.Groups.ToList().ForEach(i=>async{awaitGetAdminsFromGroup(i.Gid);});}我收到错误:Thename'Async'doesnotexistinthecurrentcontextusing语句所在的方法设置为async。 最佳答案 List.ForEach与async的配合不是特别好(出于同样的原因,LI

c# - 通过 ASP.NET Web API 有效地使用 async/await

我正在尝试在我的WebAPI项目中使用ASP.NET的async/await功能。我不太确定它是否会对我的WebAPI服务的性能产生任何影响。请在下面找到我的应用程序中的工作流程和示例代码。工作流程:UI应用程序→WebAPI端点(Controller)→WebAPI服务层中的调用方法→调用另一个外部Web服务。(这里我们有数据库交互等)Controller:publicasyncTaskGetCountries(){varallCountrys=awaitCountryDataService.ReturnAllCountries();if(allCountrys.Success){r

c# - 通过 ASP.NET Web API 有效地使用 async/await

我正在尝试在我的WebAPI项目中使用ASP.NET的async/await功能。我不太确定它是否会对我的WebAPI服务的性能产生任何影响。请在下面找到我的应用程序中的工作流程和示例代码。工作流程:UI应用程序→WebAPI端点(Controller)→WebAPI服务层中的调用方法→调用另一个外部Web服务。(这里我们有数据库交互等)Controller:publicasyncTaskGetCountries(){varallCountrys=awaitCountryDataService.ReturnAllCountries();if(allCountrys.Success){r

c# - 我应该避免使用 'async void' 事件处理程序吗?

我知道使用即发即弃asyncvoid方法来启动任务通常被认为是一个坏主意,因为没有待处理任务的跟踪并且处理异常很棘手可能会被抛入这样的方法中。我通常也应该避免使用asyncvoid事件处理程序吗?例如,privateasyncvoidForm_Load(objectsender,System.EventArgse){awaitTask.Delay(2000);//doasyncwork//...}我可以这样重写:TaskonFormLoadTask=null;//trackthetask,canimplementcancellationprivatevoidForm_Load(obje

c# - 我应该避免使用 'async void' 事件处理程序吗?

我知道使用即发即弃asyncvoid方法来启动任务通常被认为是一个坏主意,因为没有待处理任务的跟踪并且处理异常很棘手可能会被抛入这样的方法中。我通常也应该避免使用asyncvoid事件处理程序吗?例如,privateasyncvoidForm_Load(objectsender,System.EventArgse){awaitTask.Delay(2000);//doasyncwork//...}我可以这样重写:TaskonFormLoadTask=null;//trackthetask,canimplementcancellationprivatevoidForm_Load(obje

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