private static Action <CommandRequest> WorkerBegin(CommandWorker worker, CommandType commandType) { switch (commandType) { case CommandType.Unexecute: return(worker.Unexecute); case CommandType.Enabled: return(worker.Enabled); default: return(worker.Execute); } }
private static void CloseWorker(Guid sessionId, CommandWorker worker) { try { var domain = worker.GetDomain(); Workers.TryRemove(sessionId, out worker); if (AppDomain.CurrentDomain != domain) { AppDomain.Unload(domain); } Methods.GarbageCollect(); } catch { Methods.GarbageCollect(); } }