TPL数据流批量检查输入缓冲区

时间:2015-10-01 09:08:30

标签: c# .net task-parallel-library tpl-dataflow

我的DataFlow管道以BatchBlock开头。我想借助BatchBlock方法触发TriggerBatch()。我的批量大小可以变化,因此在创建Batchblock时,我放置了一个相当高的BatchSize,我真的不希望达到它。

现在我想调用TriggerBatch()方法,这取决于BatchBlock是否确实有一些元素可以实际上被触发成批处理。有没有办法检查Batchblock的内部缓冲区是否为非空?如果没有,有人可以为我建议一个解决方案。 BatchBlock正在从多个线程中提供Post()数据到Batchblock。但是我想要一种机制可以等到Batchblock中有元素出现之后再触发它。基本上我不希望我的TriggerBatch()毫无结果。不幸的是,使用计时器对我来说不是一个选择。

此时我确实需要第三人的意见,因为我已经坚持了很长一段时间。

1 个答案:

答案 0 :(得分:0)

使用Book tmp = (Book) JOptionPane.showInputDialog(null, "Books", "Books", JOptionPane.QUESTION_MESSAGE, null, ani, null); String userChoice = tmp.getName(); String userChoice2 = tmp.toString(); 您可以创建一个自定义块,您可以自行管理输入缓冲区,并可以根据您自己的条件推送任意大小的批量:this