C#嵌套私有类

时间:2011-06-29 01:30:57

标签: c# priority-queue nested-class

我正在创建自己的各种优先级队列。它不是典型的优先级队列,因为项目以给定的优先级插入。相反,项目可以添加到队列中,并且它们以最高优先级开始(假设我们有5个队列,队列1 =最高优先级,队列5 =最低),因此项目最初会添加到队列1中。

此数据结构的用户可以获取next()元素,该元素返回基于我感兴趣的某些因素的元素,即优先级,但它不会从整个数据结构中退出。用户提供对从先前调用next()返回的项目的有效性的一些反馈(例如,通过/失败结果),并且基于此,项目优先地向上或向下移动。基本上,失败的元素不常使用,我有机制最终删除经常失败的元素。

1)有任何改进界面的建议吗?我不喜欢从next()调用中检索一个元素,然后用另一个函数调用提供反馈。在状态搞砸的情况下,有太多的错误空间。 (即用户在获取下一个元素之前不报告结果..等等...)。此外,还希望允许它是线程安全的。

2)我正在使用一个私有嵌套类来包装我感兴趣的元素以及与每个元素相关联的一些属性来跟踪元素的统计信息(例如通过/失败计数等...),并希望知道是否有办法从内部类访问外部类成员?

1 个答案:

答案 0 :(得分:1)

不确定我是否完全理解了这个问题,但是下一个()没有等待返回的反馈有什么问题?该结构的用户将next()元素从队列中拉出,然后在元素准备好时对其进行submitFeedback()。同时,其他用户也可以异步地拉出next()元素。队列在进入时处理调用。如果这没有帮助,您能否更详细地解释处理状态的问题?