我正在编写一个程序,其中一个线程需要将项目推送到队列中,而一个或多个线程则从队列中弹出项目并处理它们。为了避免内存不足,我希望在队列满时生产者线程能够休眠。有些项目比其他项目具有更高的优先级,因此我希望这些项目首先被处理。如果项目具有相同的优先级,则希望最先添加的项目先被处理。
我想在WPF DataGrid中显示前100个项目左右,因此它也需要由UI线程访问。如果它能通知UI线程已经更新,即实现IObservable,那就太好了。
是否有一个容器类可以完成所有这些操作?
额外加分的是,我相信在入队和出队时并不需要锁定整个队列。
.NET 4 的实现是可以的。
我想在WPF DataGrid中显示前100个项目左右,因此它也需要由UI线程访问。如果它能通知UI线程已经更新,即实现IObservable,那就太好了。
是否有一个容器类可以完成所有这些操作?
额外加分的是,我相信在入队和出队时并不需要锁定整个队列。
.NET 4 的实现是可以的。