public void RunStorageManagement(bool abortIfRunning = false)
{
if (InvokeRequired)
{
Invoke(new Delegates.RunStorageManagementDelegate(RunStorageManagement), abortIfRunning);
return;
}
if (StorageThreadRunning)
{
if (abortIfRunning)
{
try
{
_storageThread.Abort();
}
catch
{
//may have exited
}
}
}
if (!StorageThreadRunning)
{
lock (ThreadLock)
{
bool r = Conf.MediaDirectories.Any(p => p.Enable_Storage_Management);
r = r || Cameras.Any(p => p.settings.storagemanagement.enabled);
r = r || Microphones.Any(p => p.settings.storagemanagement.enabled);
if (r)
{
Logger.LogMessageToFile("Running Storage Management");
_storageThread = new Thread(DeleteOldFiles) {IsBackground = true};
_storageThread.Start();
}
}
}
else
Logger.LogMessageToFile("Storage Management is already running");
}