排队和排队多种类型

时间:2016-10-17 10:59:16

标签: c# concurrent-queue

我有一个由COM服务器每秒触发数千次的事件,它提供来自交换的实时价格信息。在我的代码中,我可以访问此事件(C#):

String NewInteraction1 = "//div[@ardbn='Customer']//a";
WebDriverWait wait1 = new WebDriverWait(driver, 120);// 1 minute 
wait1.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(NewInteraction1)));
WebElement link1 = driver.findElement(By.xpath(NewInteraction1));
link1.click();
Thread.sleep(4000);
List<WebElement> allElements = driver.findElements(By.xpath("//table[@class='MenuTable']//tr"));
System.out.println(allElements.size());
       for(WebElement element:allElements){
    	System.out.println(element.getText());
    	if(element.getText().equals("ELEMENT TO BE CLICKED"))
		{
		element.click();
		Thread.sleep(4000);
		break;
		}
    	
		}

我想尽快处理传入的数据,因为我意识到当交易非常繁忙时,事件的频率甚至更高,有时Stream似乎被卡住了,然后不再触发任何事件

那么我的想法是什么?我想使用ConcurrentQueue对数据进行排队,并且并行运行几个Workerthreads,这些项目将使项目出列以处理它们。

但是现在我不知何故被卡住了,因为我无法将数据(包括最重要的值,包括SymbolNr,float Price和DateTime Time)一次排入ConcurrentQueue而不将它们包装到一个实例中(通用)类。因为这种方法在我看来非常耗时,所以我们讨论的是每秒最多可以实现100,000个对象。

我是对的吗?处理这种情况的最佳方法是什么?

0 个答案:

没有答案