Пример #1
0
        void IExtensionApplication.OnStart(ApplicationHost onwer, M2SA.AppGenome.AppHub.CommandArguments args)
        {
            LogManager.GetLogger().Debug("---------- TaskProcessor.Start... ----------");

            ThreadStart ts = new ThreadStart(this.Process);
            Thread      t  = new Thread(ts);

            t.Start();
        }
Пример #2
0
        void IExtensionApplication.OnStop(ApplicationHost onwer, M2SA.AppGenome.AppHub.CommandArguments args)
        {
            var stop = Stopwatch.StartNew();

            LogManager.GetLogger().Debug("---------- TaskProcessor.BeginStop... ----------");
            lock (SyncObject)
            {
                var threadPool = AppInstance.GetThreadPool();

                #region Resize ThreadPool

                var minFactor = this.actionMap.Count + 3;
                if (minFactor > threadPool.MaxThreads)
                {
                    var shutdownMaxThreads = 20;
                    if (threadPool.MaxThreads < shutdownMaxThreads)
                    {
                        threadPool.MaxThreads = shutdownMaxThreads;
                        threadPool.MinThreads = minFactor > shutdownMaxThreads ? shutdownMaxThreads : minFactor;
                    }
                }

                #endregion

                foreach (var item in this.actionMap)
                {
                    var taskAction = item.Value;
                    if (taskAction.CanCancel == false)
                    {
                        this.Invoke(item.Key, taskAction);
                    }
                }

                threadPool.WaitForIdle();
            }
            stop.Stop();
            LogManager.GetLogger().Debug("---------- TaskProcessor.Stoped [{0}]... ----------", stop.Elapsed);
        }
Пример #3
0
 void IExtensionApplication.OnInit(ApplicationHost onwer, M2SA.AppGenome.AppHub.CommandArguments args)
 {
 }