protected bool IsAvailable(int y)
{
if (_abort)
return false;
bool retVal = true;
lock (_generateLock)
{
while (_pause)
{
System.Threading.Thread.Sleep(10);
System.Windows.Forms.Application.DoEvents();
if (_abort)
return false;
}
if (y < _availableY)
retVal = false;
else
{
_availableY = y + 1;
if (_maxUpdateSteps > 0 && !_oneStepProgress && !IsSmallPreview() )
{
double maxUpInvers = 1.0 / ((double)_maxUpdateSteps + 2);
if(!_abort)
_starter.Progress(100.0 * (
maxUpInvers * ((double)_updateCount + y / (double)_maxzIter))
);
}
else
{
if (!_abort)
_starter.Progress(100.0 * (y / (double)_maxzIter));
}
retVal = true;
}
}
return retVal;
}