ServiceMonitor.ProcessModel.Stop C# (CSharp) Méthode

Stop() public méthode

public Stop ( ) : void
Résultat void
        public void Stop()
        {
            if (!Running)
            {
                return;
            }

            _manualStop = true;

            Running = false;

            if (_process == null)
                return;

            try
            {
                _process.Kill();
            }
            catch(Exception e )
            {
                Debug.WriteLine(e.ToString());
            }

            if (OnStop != null )
            {
                OnStop(this);
            }
        }

Usage Example

        // 命名规则: 与svc同目录下,  svc.exe 对应的批处理是 svc_Build.bat
        void RunSvcShell(ProcessModel svcModel, bool startAfterDone)
        {
            if (!svcModel.Valid)
            {
                return;
            }

            // 还在跑的进程, 必须停下来
            if (svcModel.Running)
            {
                svcModel.Stop();
            }

            var buildcmd = Path.Combine(Path.GetDirectoryName(svcModel.FileName), Path.GetFileNameWithoutExtension(svcModel.FileName) + "_Build") + ".bat";

            var shellModel = new ProcessModel();

            shellModel.FileName = buildcmd;
            shellModel.invoker  = this;
            shellModel.CanStop  = false;

            shellModel.OnStart += (m) =>
            {
                m.WriteLog(Color.Yellow, "启动Shell: " + buildcmd);
            };

            Action <ProcessModel> stopProc = (m) =>
            {
                m.WriteLog(Color.Yellow, "结束Shell: " + buildcmd);

                // 编译正常时, 启动进程
                if (startAfterDone && shellModel.ExitCode == 0)
                {
                    svcModel.Start();
                }
            };


            shellModel.OnStop += stopProc;
            shellModel.OnExit += stopProc;

            shellModel.OnLog   += svcModel.OnLog;
            shellModel.OnError += svcModel.OnError;

            shellModel.Start();

            RefreshButtonStatus();
        }
All Usage Examples Of ServiceMonitor.ProcessModel::Stop