void InitAndRunFreeThreads(IWorkerThread Thread) { if (Thread.GetState() == WorkerThreadState.Free) { TaskFinished.BeginInvoke(Thread.GetCurrentTask(), null, null); InitThread(Thread); } else { Logger.UltraLogger.Instance.AddToLog("Worker: Thread is not free. Cant init thread after end of previous task.", Logger.MsgType.Error); throw new NotImplementedException(); } }