C# 在多线程环境中使用断路器模式

C# 在多线程环境中使用断路器模式,c#,multithreading,C#,Multithreading,我正在做一个项目,它使用C.从restapi获取数据。我使用Parallel.ForEach以多线程方式一次调用100条记录。当100中的2个请求由于连接错误而失败时,我想使用断路器模式 我已经检查了,但没有得到在多线程场景中使用容错断路器模式的具体示例(可能我遗漏了这些) 有实现这一点的示例和框架吗? 实现这一点的任何链接都将非常有用。所有这些奇特的模式!,对于初学者来说,Parallel.ForEach不应用于IO绑定操作。您正在浪费资源并占用线程。其次,Parallel.ForEach没有

我正在做一个项目,它使用
C.
restapi
获取数据。我使用
Parallel.ForEach
以多线程方式一次调用100条记录。当100中的2个请求由于连接错误而失败时,我想使用断路器模式

我已经检查了,但没有得到在多线程场景中使用容错断路器模式的具体示例(可能我遗漏了这些)

有实现这一点的示例和框架吗?

实现这一点的任何链接都将非常有用。

所有这些奇特的模式!,对于初学者来说,
Parallel.ForEach
不应用于IO绑定操作。您正在浪费资源并占用线程。其次,
Parallel.ForEach
没有超时的概念(电路中断模式现在死在水中),您所能做的就是使用某种线程安全开关来处理电路剩余。三分之一,你不能取消一个不知道取消的任务(我可能刚刚编了一个术语),所以你希望使用的任何东西都应该有一个暂停。最后,感谢总干事的投入。我希望任何连接错误都能实现收支平衡。这不应仅限于超时。您可以在for循环中启动并启动自己的任务。任务可以取消,如果一个或多个任务以某种方式失败,您可以全部取消。我可以取消任务并按照MineR所述继续,但我已经在服务器上对代码进行了性能分析,发现正如General在评论中提到的,它确实消耗了相当多的资源。因此,我已将代码更改为调用async,并在上面使用了Polly的断路器模式。谢谢你的评论。