public override bool Invoke()
{
WorkItem workItem;
bool additionalWork;
bool canContinueImmediateExecution = false;
do
{
additionalWork = Invoke(out workItem);
if (workItem != null)
{
canContinueImmediateExecution = workItem.CanExecuteImmediately;
}
}
while (additionalWork && canContinueImmediateExecution);
return additionalWork;
}