private void OnStatusChanged(AbstractBackgroundProcess process, ProcessStatus status)
{
lock (activeProcesses) {
if ((process.Status == ProcessStatus.FAILED ||
process.Status == ProcessStatus.COMPLETED ||
process.Status == ProcessStatus.ABORTED) &&
activeProcesses.Contains(process)) {
activeProcesses.Remove(process);
threadLookup.Remove(process);
}
}
if (StatusChanged != null) StatusChanged(process, status);
}