草庐IT

c# - 带有异步 lambda 和 Task.WaitAll 的 Task.Factory.StartNew

我正在尝试对任务列表使用Task.WaitAll。问题是任务是一个异步lambda,它会破坏Tasks.WaitAll,因为它从不等待。这是一个示例代码块:Listtasks=newList();tasks.Add(Task.Factory.StartNew(async()=>{using(dbContext=newDatabaseContext()){varrecords=awaitdbContext.Where(r=>r.Id=100).ToListAsync();//dolongcpuprocesshere...}}Task.WaitAll(tasks);//domorestuf

c# - 在键盘事件中使用 CancellationToken 调用 Task.Delay 时出现 TaskCanceledException

我正在尝试延迟从WinRT中的键盘事件调用的方法(示例中的SubmitQuery())的处理,直到一段时间内(在本例中为500毫秒)没有进一步的事件。我只希望在我认为用户已完成输入时运行SubmitQuery()。使用下面的代码,当Task.Delay(500,cancellationToken.Token)时,我不断收到System.Threading.Tasks.TaskCanceledException;叫做。请问我做错了什么?CancellationTokenSourcecancellationToken=newCancellationTokenSource();private

c# - CancellationToken.ThrowIfCancellationRequested 后的故障与取消任务状态

通常我不会发布带有答案的问题,但这次我想引起一些人对我认为可能是一个晦涩但普遍的问题的关注。它是由thisquestion触发的,从那以后我检查了我自己的旧代码,发现其中一些也受此影响。下面的代码启动并等待两个任务,task1和task2,它们几乎相同。task1与task2的唯一区别在于它运行一个永无止境的循环。IMO,这两种情况对于一些执行CPU密集型工作的现实场景来说都是非常典型的。usingSystem;usingSystem.Threading;usingSystem.Threading.Tasks;namespaceConsoleApplication{publicclas

c# - 异步等待 Task.Run 与 HttpClient.GetAsync

我是c#5异步功能的新手。我试图了解这两种实现之间的区别:实现1:privatevoidStart(){foreach(varurlinurls){ParseHtml(url);}}privateasyncvoidParseHtml(stringurl){varquery=BuildQuery(url);//BuildQueryissomehelpermethodvarhtml=awaitDownloadHtml(query);//...MyTypeparsedItem=ParseHtml(html);SaveTypeToDB(parsedItem);}privateasyncTask

c# - 从以 Task 为返回类型的非异步方法返回什么?

假设我有一个不是异步但返回一个Task的方法(因为定义来自一个也用于异步实现的接口(interface))publicTaskDoWorkAsync(Guidid){//dotheworkreturn...;}返回的最佳对象是什么?我目前的选择:returnTask.Yield();returnTask.FromResult(null);//anyoftheotherbutcachedinastaticfieldandreused. 最佳答案 在Microsoft.net4.6中,Task类具有用于此目的的静态属性。任务.Compl

c# - .NET 4 相当于 Task.WhenAll()

在.NET4中,是否有与.NET4.5的System.Threading.Tasks.Task.WhenAll()等效的功能??目标是将多个异步任务打包成一个任务,当所有组成任务都完成时,该任务就完成了。 最佳答案 在.NETFramework4.0中,WhenAll和WhenAny可以与已安装的AsyncCTP一起使用如果是VisualStudio2010或AsyncTargetingPack对于VisualStudio2012。然后在TaskEx类型上提供WhenAll和WhenAny方法。

c# - "long-running tasks"是什么意思?

Bydefault,theCLRrunstasksonpooledthreads,whichisidealforshort-runningcompute-boundwork.Forlonger-runningandblockingoperations,youcanpreventuseofapooledthreadasfollows:Tasktask=Task.Factory.StartNew(()=>...,TaskCreationOptions.LongRunning);我正在阅读有关thread和task的主题。你能给我解释一下什么是“长时间运行”和“短期运行”任务吗?

c# - 使用 `async` lambda 和 `Task.Run()` 是多余的吗?

我刚遇到一些代码,例如:vartask=Task.Run(async()=>{awaitFoo.StartAsync();});task.Wait();(不,我不知道Foo.StartAsync()的内部工作原理)。我最初的react是摆脱async/await并重写为:vartask=Foo.StartAsync();task.Wait();这是否正确(同样,对Foo.StartAsync()一无所知)。This回答Whatdifferencedoesitmake-runningan'async'actiondelegatewithaTask.Run...似乎表明在某些情况下它可能有

javascript - react native : HeadslessJS and Redux - How to access store from task

我们有一个使用redux、redux-persist和HeadlessJS任务的ReactNative应用程序。此任务需要有权访问商店。由于任务在没有启动整个应用程序的情况下触发(因此默认情况下没有访问权限),我们认为我们也可以简单地在任务中创建商店,以便它可以通过redux-persist重新水化。然而,事实证明,以这种方式创建的商店与应用程序中的商店不同:运行后,它们包含不同的值。我们以多种方式对此进行了测试,这似乎确实是商店的问题(而不是例如操作)我们应该如何从HeadlessJS任务访问Redux存储?相关代码:store/configure.js:configureStore

javascript - 失败 : Timed out waiting for asynchronous Angular tasks to finish after 11 seconds

我想使用Protractor对我们的Angular2应用程序进行端到端测试,但我仍然坚持消息:"Failed:TimedoutwaitingforasynchronousAngulartaskstofinishafter11seconds."我的配置文件。exports.config={directConnect:true,specs:['spec.js'],//Forangular2testsuseAllAngular2AppRoots:true,}Chrome打开了,网站也打开了,然后直到超时什么都没有。禁用同步时(使用browser.ignoreSynchronization=t