7得票2回答
如何创建一个分层的CancellationTokenSource?

在我们的项目中,我们决定通过 CancellationToken 来为用户提供取消机制。由于项目中工作的结构,我需要一个分层的取消机制。所谓分层,是指父源取消将递归地导致所有子源被取消,但子源的取消不会传播到父源。 在 .NET 中是否有这样的选项可用?如果没有,我不确定在父令牌上注册委托是...

14得票1回答
从信号处理程序中获取保存的指令指针地址

我的问题与其他关于故障地址的问题有所不同。我正在尝试实现一种可怕的黑客方法,通过检查保存的指令指针处的代码并将其与运行主机体系结构的可能系统调用入口指令进行比较,从信号处理程序中确定信号是否中断了系统调用或普通用户代码。这是实现正确 POSIX 线程取消的一部分,不会受到在我的旧问题中描述的竞...

14得票4回答
没有CancellationToken停止一个任务

我正在使用一个外部库,该库具有async方法,但没有CancellationToken的重载。 目前,我正在使用来自另一个StackOverflow问题的扩展方法来添加CancellationToken: public async static Task HandleCancell...

15得票1回答
为什么pthread_exit会抛出被省略号捕获的内容?

如果被 pthread_create 调用的函数具有以下结构try{ ...code.... pthread_detach(pthread_self()); pthread_exit(NULL); }catch(...){ std::cout<<"I am here...

7得票1回答
取消的任务不会返回控制到异步块

我试图将这个问题简化到最小的可重现状态,但它仍然比较长,抱歉。 我有一个F#项目,引用了一个包含以下代码的C#项目。 public static class CSharpClass { public static async Task AsyncMethod(Cancellatio...

24得票3回答
Sidekiq如何停止一个正在运行的单个任务?

我需要以编程方式停止Sidekiq(3.1.2)中正在运行的作业,而不是预定的作业。我已经阅读了API文档,但并没有找到有关取消正在运行作业的信息。这是否可能使用Sidekiq实现? 如果直接不可能实现,则我的想法是在调用信号时在作业中引发异常,然后从重试集中删除该作业。虽然这显然不是最佳方...

11得票4回答
在Scala中使用Future和Promise进行取消操作

这是我的上一个问题的后续。 假设我有一个任务,它执行一个可中断的阻塞调用。我想将其作为Future运行,并使用Promise的failure方法取消它。 我希望取消的操作如下: 如果在任务完成之前取消任务,我希望任务立即完成,如果已经开始,则中断阻塞调用,并且Future会调用onFa...

8得票2回答
React.js 建议取消 Promise,但官方 Promise 无法取消。那我应该怎么做?

为了防止未挂载的React组件出现幽灵更新,React告诉你在组件(例如用于获取额外数据的promise)卸载时取消任何待定的promise。使用Bluebird promises非常容易实现这一点,因为它们有一个.cancel()方法,使得.then()和.catch()处理程序永远不会响应...

8得票2回答
如何在 BlockingCollection 上取消 GetConsumingEnumerable()?

在以下代码中,我使用CancellationToken来在生产者不生产时唤醒GetConsumingEnumerable(),并且希望退出foreach并退出任务。但是我没有看到IsCancellationRequested被记录,而我的Task.Wait(timeOut)等待了整个timeO...

22得票2回答
有什么方法可以区分“取消”和“超时”?

我有一些代码正在通过调用其他服务来验证一些数据。我并行启动所有的调用,然后等待至少一个完成。如果任何请求失败,我不关心其他调用的结果。我使用HttpClient进行调用,并传递了一个执行大量日志记录的HttpMessageHandler。基本上是这样:protected override as...