c# - 如果在信号量的情况下多个线程抛出异常怎么办

标签 c# multithreading semaphore

如果一个信号量中有多个线程抛出异常,会发生什么。

假设一个 sempahore 可以有 10 个线程,它们可以同时进入,线程#2、5、6、7、9 将抛出异常,然后其他不会抛出异常的线程将成功运行或被中止。

它是否与 AggregatedException 类有某种关联。

最佳答案

假设异常发生时其他线程已经在信号量内部,它们将成功运行到完成。如果您希望它们提前终止,请使用 SemaphoreSlim带有 cancellation token 的对象.

关于c# - 如果在信号量的情况下多个线程抛出异常怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12257331/

相关文章:

正确终止正在运行的线程 "works"

ios - 我可以使用相同的 NSString 作为 @synchronized 的一个信号量吗

java - Java 中的信号量。生产者-消费者问题

c# - 在 C# 中直接从 char int 转换为 char

c# - 我应该为此使用 BackgroundWorker 还是 Threads?

c# 为 multipartReader.ReadNextSectionAsync() 设置超时

android - 在 onResume/onPause 中重新启动/暂停线程

java - 信号量类中的公平设置

c# - Azure ML Web 服务请求在 C# 中不起作用

c# - 如何在 wpf 中获取多个项目的边界框?