private void EngineClose() { //关闭引擎 if (m_engine != null) { VBAStaticEngine.ReturnVBAEngine(m_engine); m_engine = null; } }
public static void ReturnVBAEngine(VBAStaticEngine engine) { lock (ms_dictenginequeue) { Queue<VBAStaticEngine> enginequeue = null; if (ms_dictenginequeue.ContainsKey(engine.Script)) { enginequeue = ms_dictenginequeue[engine.Script]; } else { enginequeue = new Queue<VBAStaticEngine>(); ms_dictenginequeue.Add(engine.Script, enginequeue); } enginequeue.Enqueue(engine); } }
public static void ReturnVBAEngine(VBAStaticEngine engine) { lock (ms_dictenginequeue) { Queue <VBAStaticEngine> enginequeue = null; if (ms_dictenginequeue.ContainsKey(engine.Script)) { enginequeue = ms_dictenginequeue[engine.Script]; } else { enginequeue = new Queue <VBAStaticEngine>(); ms_dictenginequeue.Add(engine.Script, enginequeue); } enginequeue.Enqueue(engine); } }
public static void Dispose(FrmMain uiform) { if (ms_IsClientRunning) { Stop(); } Thread.Sleep(500); ConnectionManagerClient.UnregisterChannel(); StoreManagerIntoFile(uiform); ms_tmc.Dispose(); //Static Manager Disposing... VBAStaticEngine.DisposeAll(); CWBPool.Dispose(); PerformanceBalancer.Dispose(); }
public static void Dispose(FrmMain uiform) { if (ms_IsServerRunning) { Stop(); } Thread.Sleep(500); //Stop Tcp Service ConnectionManagerServer.StopServer(); ConnectionManagerServer.UnregisterChannel(); StoreManagerIntoFile(uiform); m_tms.Dispose(); m_ttm.Dispose(); //Static Manager Disposing... VBAStaticEngine.DisposeAll(); CWBPool.Dispose(); PerformanceBalancer.Dispose(); }
public virtual void Run() { try { m_taskstatus = TaskStatus.Ready; (m_vbaobjs["Task"] as VBATask).CurrentVBATaskStatus = VBATaskStatus.Ready; m_runningtime++; m_script = GetScript(); if (m_script != null && m_script != "") { EngineClose(); //实例化一个新引擎 m_engine = VBAStaticEngine.RentVBAEngine(m_script); //实现VBAObject注入 m_engine.Injection(m_vbaobjs); } //新开一个线程 m_scriptthread = new Thread(ScriptThreadRunner); m_scriptthread.Start(); } catch (Exception err) { GetLogger().Fatal(this.Name + err.Message); m_taskstatus = TaskStatus.Failure; //实现AfterTask事件 if (AfterScript != null) { AfterScript(this, null); } } }
public virtual void Run() { try { m_taskstatus = TaskStatus.Ready; (m_vbaobjs["Task"] as VBATask).CurrentVBATaskStatus = VBATaskStatus.Ready; m_runningtime++; m_script = GetScript(); if (m_script != null && m_script != "") { EngineClose(); //实例化一个新引擎 m_engine = VBAStaticEngine.RentVBAEngine(m_script); //实现VBAObject注入 m_engine.Injection(m_vbaobjs); } //新开一个线程 m_scriptthread = new Thread(ScriptThreadRunner); m_scriptthread.Start(); } catch (Exception err) { GetLogger().Fatal(this.Name + err.Message); m_taskstatus = TaskStatus.Failure; //实现AfterTask事件 if (AfterScript != null) AfterScript(this, null); } }