比如我现在有10000条任务需要执行,通过信号量SemaphoreSlim来实现控制20条线程并发。 在线程内部是发送GET请求,由于目标服务器上面有限制,可能会返回403,其中任意一条线程发现返回的状态是403的时候进行拨号换IP,现在问题就是怎么通知其他线程,我已经换IP了,你们不用再换了,注意,通知的线程只是在这20次中的线程,后来的线程不做通知,因为服务器可能又限制了。 这个是我现在的做法,定义一个程序集变量,在线程内部获取这个变量_flag然后在异常块判断,这两个值是否相等,不相等说明已经更换IP了,那么重新执行这个方法,如果相等则进入lock块再判断是否更换IP,有点像单例。想请问一下是否还有更好的做法?
1 回答
- 1 回答
- 0 关注
- 496 浏览
添加回答
举报
0/150
提交
取消