public Interrupter() { Interrupt = (serviceName, states) => { if (!PASVServiceMap.ContainsKey(serviceName)) { return(null); } object returnValue = null; Symbol[serviceName] = true; ThreadPool.QueueUserWorkItem((state) => { PASVService pasvService = PASVServiceMap[serviceName]; if (null != pasvService) { Type type = Type.GetType(PASVServiceMap[serviceName].TypeName); type.GetMethod(PASVServiceMap[serviceName].Method).Invoke(Activator.CreateInstance(type), states); } }); while (Symbol.ContainsKey(serviceName) && Symbol[serviceName]) { Thread.Sleep(500); } return(returnValue); }; }
public void AddPASVService(string serviceName, PASVService pasvService) { PASVServiceMap[serviceName] = pasvService; }