我有许多线程从服务器列表中检索数据。每 5 分钟从服务器解析器下载一次服务器列表。我用于处理数据的线程应该仅使用响应时间最短的服务器。每个服务器的响应时间可能因请求而异。因此,在更新服务器列表之间的时间范围内,我应该验证每个服务器的响应时间。
我最初的方法是创建两个额外的线程:第一个线程更新服务器列表,第二个线程验证每个服务器的响应时间并根据服务器的响应时间对服务器列表进行排序。
我尝试使用BlockingCollection<T>它来连接生产者和消费者,但在我的任务中,我有两个并发消费者,并且也BlockingCollection<T>没有插入项目来创建服务器优先列表的本机能力。
ConcurrentStack<T>或者ConcurrentQueue<T>也不能按原样使用,因为它们像 as 一样是非阻塞的,BlockingCollection<T>并且它们需要额外的机制来阻塞需要队列中的项目的线程。
请帮我解决这个任务。