public void ExecMonitor(object prm) {
var state = prm as ThreadState;
try {
while( state.Executing ) {
state.Tick();
while( state.Paused )
Thread.Sleep(1000);
if( state.IsFirstCycle )
OnStartedLoadingQueues();
try {
if( RefreshUnprocessedQueueItemList() )
OnItemsChanged(ItemChangeOrigin.Queue);
} finally {
if( state.IsFirstCycle )
OnFinishedLoadingQueues();
}
Thread.Sleep(Config.MonitorInterval);
}
} finally {
state.Stop();
}
}