问题标签 [cancellation-token]
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# - 异步取消异常 Metro 对话框
我正在使用使用 ShowMessageAsync 方法的 MahApps Metro 对话框。在某些情况下,我会调用对话框然后取消它。我这样称呼对话框
并取消
当我使用以下示例对其进行测试时,这似乎效果很好
我也用过代币。ThrowIfCancellationRequested();
因为显示和取消之间存在异步性。我的问题是,如果我在演出前取消它工作正常,如果我在演出后取消它工作正常,但如果我在演出后 0~500 毫秒之间取消它,它会引发 NullReference 异常。似乎 MahApps 代码中的某些内容不正确,除非它在完全初始化之前被取消。我试图想办法锁定它,所以我只能在它初始化后取消,但我找不到方法来判断它是否准备好?
更新:
这被简化为究竟是什么失败了。以下代码抛出 NullReference 异常
更新 2: 这会导致异常:
虽然这不是:
c# - 如何从事件处理程序方法内部获取对方法中定义的局部变量的引用?(没有更好的标题)
我有一个 tabControl,每次单击搜索按钮时都会在其中添加 tabPages。tabControl 对象还有一个 MouseDown 事件处理程序,以便在鼠标悬停在特定选项卡上并单击它时关闭选项卡。tabcontrol_MouseDown 方法还取消了在单击搜索按钮时启动的任务,因此该任务不会尝试使用已从 tabControl 中删除的 tabPage 及其 resultData 进行更新。
下面代码的问题在于它cts
是一个对象变量,因此每次我使用新的 CancellationTokenSource 创建一个新选项卡时它都会被覆盖。如果我只需要向 tabControl 添加一个 tabPage,这可能会起作用,但我需要添加很多。
有没有一种方法可以在 searchButton_Click 方法中定义和创建一个取消令牌,并让 tabControl_MouseDown 找到对它的引用,或者有其他方法可以解决这个问题吗?
c# - 正确使用 CancellationToken
这是我的情况:
调用 cancelToken 方法时,任务不会被取消。怎么来的?
我已阅读Microsoft 指南,以及有关取消任务的其他 Stackoverflow 问题。
但仍然难以正确使用它们。
asp.net - 客户端可以取消 Web Api 请求吗?
我的 web api 控制器中有以下方法(长时间运行的方法尊重取消令牌,即如果请求取消,它们将不会运行):
客户端有以下代码来调用我的 web api 控制器:
如果客户端的请求在“LongRunningNetworkOperation2”被调用之前超时,cancellationToken会阻止“LongRunningNetworkOperation2”的运行吗?换句话说,客户端可以向 web api 发出信号以停止运行某个请求吗?
c# - 在 .NET 控制台应用程序上使用 CancelKeyPress 事件
我在 v4.5.1 上编写了一个 .NET 控制台应用程序(在 C# 中)。我的Main
方法如下所示:
可能的命令之一(由 处理ProcessCommand
)调用一个长时间运行的进程,我希望能够通过Console.CancelKeyPress
委托使用 CTRL + C 取消该进程。
但是当我这样做时,Visual Studio 会打开一个选项卡,上面写着“mscorlib.dll 未加载”,然后什么也不做 - 控制台保持打开但无响应。
我也尝试在调试之外运行该应用程序,但我找不到可执行文件。
c# - 如何使用 AsNoTracking 和 CancellationToken 查询大型 DbSet
我知道在 EF6 中做了很多工作来支持 CountAsync 等异步操作,但我似乎无法取消简单的查询。这是故事。
我有一个返回 450 万行的查询。我需要处理每一行,但我无法将它们全部保存在内存中。EF6 好心让我这样做:
这很好用并且使用很少的内存,但它不是很容易取消。我试过这种愚蠢的做法:
当然,这会尝试将整个查询加载到 List<> 中,它在加载所有行之前很久就崩溃了。值得庆幸的是,它对取消非常敏感。:)
我得到的最接近的是像这样包装整个混乱:
这不会占用内存,我可以取消它,但是取消需要永远响应,并且有一些令人讨厌的例外,因为我正在拉出地毯。
我在这里想念什么?
asp.net - 如何取消 HostingEnvironment.QueueBackgroundWorkItem
有没有办法取消用 制作的后台任务HostingEnvironment.QueueBackgroundWorkItem
?
如果任务被取消,有CancellationToken
哪些通知,但我该怎么做?参考https://msdn.microsoft.com/en-us/library/dd997396(v=vs.110).aspx
成功取消涉及调用 CancellationTokenSource.Cancel 方法的请求代码
好的。我在哪里可以访问CancellationTokenSource
?
c# - 基于return resutl取消TPL中的多个任务
我有一个场景,其中我有多个函数要并行调用,并且我正在使用 TPL 来完成该任务。我用过
现在,我需要等到所有函数都执行完毕并在并发字典中返回一些结果,以便我可以将其用于进一步处理,但是如果某些返回的结果为空,无论任务顺序如何,我也想取消任何任务。如果任何函数返回空结果,我需要同时取消所有剩余的任务。我也检查了“CancellationToken”类,但我很困惑在任务中使用它以及如何在任务中共享函数状态。
任何帮助将不胜感激。此致
c# - 向信号器客户端提供取消令牌
如何向信号器客户端提供取消令牌,以便能够停止长轮询操作?
我可以以某种方式将其添加到HubConnection
orHubProxy
或基础HttpClient
吗?
我在谷歌上没有找到任何东西:(
请帮忙。
c# - 将取消令牌传递给调用方法VS任务构造函数?
传递取消令牌的一种方法是:
另一种方法是:
有什么区别?