问题标签 [continuewith]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 当其他任务可能永远继续运行时,如何正确使用 ContinueWith?
ContinueWith
当其他任务有可能永远继续运行时,如何正确使用?
例子:
task
是无限的,但我只想等她特定的时间:
c# - 不使用 task.ContinueWith() 时是否需要重新分配任务值
阅读帖子时,在 foreach 循环中启动任务使用最后一项的值),标记的答案很有意义。作者创建了一个新变量 pathCopy 以在任务中使用。我的问题是,只有在使用 Task.ContinueWith() 时才需要这样做吗?
这是一个例子:
我是否需要设置一个像“var taskfile = auditFile;”这样的变量?
注意:我使用的是 VS 2017 的更新版本及其 C# 编译器。
c# - 任务开始运行需要几秒钟以上的时间
我正在使用WPF
and开发一个应用程序C#
。我有以下代码:
通常CODE_A立即开始运行,不到一秒后, CODE_B开始执行。
但是,有时创建的任务需要Task.Factory.StartNew
超过 5 秒才能开始(一旦开始,执行就像往常一样快)。
我不明白为什么任务开始运行需要这么长时间?我可以以某种方式影响任务优先级,因此它会在所有情况下立即开始运行吗?我猜(这只是一个假设)任务是由任务调度程序安排的,以便稍后执行?有没有办法让我一直强制任务立即运行?
c# - 异步 POST 方法 C#'':并非所有代码路径都返回值
当我正在收听大量 POST 请求时,我正在尝试使用类似 Promise 的方法来异步执行它。
问题是它需要“getDataLead”任务之外的返回值(这种情况下取消注释return "good2
“部分)。
有什么想法可以让 POST 方法等待并返回异步“matchLogic”函数的响应吗?
谢谢
c# - 多个 ContinueWith 方法是否有适当的模式
在 TPL 的文档中,我发现了这一行:
从同一个先行词调用多个延续
但这没有进一步解释。我天真地假设您可以以类似模式匹配的方式链接ContinueWithsTaskContinuationOptions
,直到您找到正确的方法。
但这并不像我希望的那样工作,至少有两个原因。
- 延续被正确链接,因此第二个 ContinueWith 从第一个获得结果,即作为新任务实现,基本上是 ContinueWith 任务本身。我意识到可以继续返回字符串,但这不是丢失其他信息的新任务吗?
- 由于不满足第一个选项,因此任务被取消。这意味着永远不会满足第二组并且会丢失异常。
那么当他们说来自同一个先行词的多个延续时,他们在文档中的意思是什么?是否有适当的模式,或者我们只需要将调用包装在 try catch 块中?
编辑
所以我想这就是我希望我能做的,注意这是一个简化的例子。
由于这是不可能的,我想我必须将每个任务调用包装在循环内的 try catch 中,这样我就不会停止该过程,但不会在那里等待它。我不确定正确的方法是什么。
有时一个解决方案只是盯着你的脸,这行得通,不是吗?
f# - Task.ContinueWith 的 F# 异步等效项
我一直在[<Trace>]
为我们的一些大型 .NET 解决方案实现一个属性,该属性将允许将可配置分析轻松添加到任何被认为重要的功能/方法中。我正在使用 Fody 和MethodBoundaryAspect来拦截每个函数的进入和退出并记录指标。这对于同步函数很有效,对于返回的方法,Task
有一个可行的解决方案Task.ContinueWith
,但对于 F# Async-returning 函数,OnExit
来自 MethodBoundaryAspect 的 将在 Async 返回后立即运行(而不是在实际执行 Async 时)。
为了捕获 F# Async-returning 函数的正确指标,我试图想出一个等效的解决方案 using Task.ContinueWith
,但我能想到的最接近的事情是创建一个绑定第一个 Async 的新 Async ,运行指标-捕获函数,然后返回原始结果。由于我截获的 F# Async 返回值仅以obj
.知道确切的返回类型。Async
Task
到目前为止,我最好的解决方案大致如下:
不幸的是,这个解决方案不仅非常混乱,而且我相信异步计算的反射结构增加了不小的开销,特别是当我试图跟踪在循环中调用或深度嵌套的函数时异步调用。是否有更好的方法可以在实际评估异步计算后立即运行给定函数的相同结果?
vb.net - 如何在没有 lambda 的情况下做到这一点?
有没有办法用 addressOf 代替 .ContinueWith(Sub() account.LogFinishTask("GetMarketDetail", starttime)) ?
如何?
vb.net - 如何在 vb.net 中完成另一个任务?
基本上,对于每个帐户,我想做 account.readbalancesAsync 之后,我想做 account.getOrdersAsync()
我留下代码newtask.ContinueWith(Sub() account.LogFinishTask("Getting Balances", starttime))
以表明我知道 ContinueWith 是如何工作的。但是,在那之后,我需要继续执行另一项任务。
我该怎么做?
我想做的是这样的
显然,如果我这样做,那么一个帐户必须等待另一个帐户完成。我希望所有帐户并行运行。
或者让我们看看这段代码
说我这样做
我应该放什么......
vb.net - 为什么 continueWith 使用 action(of task) 作为参数?
基本上,它要求一个以 Task 为参数的 sub。这就是 Action(of Task) 对吗?
为什么?
我知道我可以通过普通的 sub 来继续。我从不记得传递了一个需要任务参数的子程序。