Der BatchBlock
lehnt das Objekt nicht wirklich ab, es versucht es zu verschieben. Nur im Fall von Post()
ist das Aufschieben keine Option. Ein einfacher Weg, dies zu beheben wäre% zu verwenden co_de% anstatt await batchBlock.SendAsync(i)
(das auch bedeutet, dass Sie batchBlock.Post(i)
auf Task.Factory.StartNew(() =>
ändern müssen).
Warum passiert das? Nach den Quellcode , wenn das Task.Run(async () =>
begrenzt ist, BatchBlock
asynchron verarbeitet und während es verarbeitet wird, werden keine neuen Produkte akzeptiert.
In jedem Fall sollten Sie nicht erwarten, dass TriggerBatch()
wird immer wieder zurückkehrt Post()
auf einem beschränkten Block, wenn der Block voll ist, true
wird auch das Rück Post()
.