private void RefreshGraph()
{
try
{
long max = 10;
graph = checkBoxGraph.Checked;
while (!cancellationTokenSource.IsCancellationRequested)
{
long receiveMessageNumber = 0;
long receiveTotalTime = 0;
long sizeTotal = 0;
long cycles = 0;
while (receiveMessageNumber < max && cycles < max)
{
cycles++;
Tuple<long, long, long> tuple;
var ok = blockingCollection.TryTake(out tuple, 10);
if (!ok)
{
continue;
}
receiveMessageNumber += tuple.Item1;
receiveTotalTime += tuple.Item2;
sizeTotal += tuple.Item3;
if (receiveMessageNumber > max)
{
max = receiveMessageNumber;
}
}
if (receiveMessageNumber > 0)
{
var receiveTuple = new Tuple<long, long, long>(receiveMessageNumber, receiveTotalTime, sizeTotal);
if (InvokeRequired)
{
Invoke(new Action<long, long, long, bool>(InternalUpdateStatistics),
new object[] { receiveTuple.Item1,
receiveTuple.Item2,
receiveTuple.Item3,
graph});
}
else
{
InternalUpdateStatistics(receiveTuple.Item1,
receiveTuple.Item2,
receiveTuple.Item3,
graph);
}
}
}
}
catch (Exception ex)
{
HandleException(ex);
}
}