private void AdjustBlockSize()
{
// to avoid locking, step mode must be checked just once
switch(executionMode)
{
case ExecutionMode.SingleStep:
if(oldMaximumBlockSize == -1)
{
oldMaximumBlockSize = MaximumBlockSize;
SetMaximumBlockSize(1, true);
}
break;
case ExecutionMode.Continuous:
if(oldMaximumBlockSize != -1)
{
SetMaximumBlockSize((uint)oldMaximumBlockSize, true);
oldMaximumBlockSize = -1;
}
break;
default:
throw new ArgumentException("Unsupported execution mode");
}
}