3

我不想计算队列的大小,而是想识别每个队列中的不同对象,以便将它们乘以它们的平均处理时间,然后获得队列中的时间。

我试图通过使用 queue.get(index) 函数来识别队列中的不同对象,但我无法确定该函数返回什么。我想知道队列中的实体来自哪个来源。

例如,我从源 1 =1 调用实体,但如果我这样做 queue.get(0)==1?0.2 :0.3 它不起作用。你有什么想法可以帮助我吗?

提前致谢,

4

1 回答 1

3

访问队列成员

该请求queue.get(index)将返回代理对象本身。返回的代理类型将由延迟块的代理类型设置决定。这通常应该自动设置为与源代理类型相同的类型,否则会出现转换错误。

获取源信息

您从代理名称中获取源信息的想法是行不通的,因为该名称与它的来源没有任何联系。

为了识别代理来自哪个来源,最直观的选择是:

  1. 创建和使用自定义代理类型
  2. 在此代理类型中,您添加一个变量,您可以在其中保存有关其来源的信息。字段的类型可以是包含源 id 的字符串,也可以是直接包含 Source 对象的“Source”类型
  3. 此字段填写在每个来源的“退出时”字段中

当您想识别队列中的来源时,您可以使用该字段进行比较,例如。像这样:

queue.get(index).mySourceId.equals("Source1")?0.2 :0.3

于 2019-04-09T10:03:42.080 回答