Example #1
0
 private void EngineClose()
 {
     //关闭引擎
     if (m_engine != null)
     {
         VBAStaticEngine.ReturnVBAEngine(m_engine);
         m_engine = null;
     }
 }
 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);
     }
 }
Example #4
0
 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();
        }
Example #6
0
        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();
        }
Example #7
0
        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);
            }
        }