public static void Destroy(IWorker worker) { lock (ListActiveWorkers) { if (ListActiveWorkers.Contains(worker)) { ListActiveWorkers.Remove(worker); } } }
public static T AddWorker <T>() where T : IWorker { try { T worker = (T)Activator.CreateInstance(typeof(T), true); worker.Awake(); lock (ListActiveWorkers) { ListActiveWorkers.Add(worker); } return(worker); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine($"Exception in {typeof(T)}.Awake() or CreateInstance: "); Console.WriteLine(ex); Console.ResetColor(); } return(default(T)); }