当前位置: 首页>>代码示例>>C#>>正文


C# IProcess.Kill方法代码示例

本文整理汇总了C#中IProcess.Kill方法的典型用法代码示例。如果您正苦于以下问题:C# IProcess.Kill方法的具体用法?C# IProcess.Kill怎么用?C# IProcess.Kill使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IProcess的用法示例。


在下文中一共展示了IProcess.Kill方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: StopProcessAsync

        public static Task StopProcessAsync(IProcess process)
        {
            if (process == null)
                return Task.FromResult<object>(null);

            return Task.Run(() => process.Kill());
        }
开发者ID:stefanschneider,项目名称:IronFrame,代码行数:7,代码来源:StopProcessHandler.cs

示例2: StopProcess

 public async Task StopProcess(IProcess process)
 {
     string exePath = process.ExePath;
     try
     {
         if (!await StopGracefully(process))
         {
             Trace.TraceInformation(
                 "Process has not exited gracefully or is not listening to the stop event, let's try to close the main window");
             if (!await Close(process))
             {
                 Trace.TraceInformation("The host process would not close, attempting to kill");
                 await process.Kill();
                 Trace.TraceInformation("The host process was killed");
             }
             else
             {
                 Trace.TraceInformation("Process exited with CloseMainWindow");
             }
         }
         else
         {
             Trace.TraceInformation("Process exited gracefully");
         }
         await process.ReleaseResources();
         await Task.Delay(ReleaseResourcesDelayMilliseconds); // allowing the os some time to release resources
     }
     catch (Exception ex)
     {
         // there is nothing more we can do; we'll swallow the exception and log an error
         Trace.TraceError("{0} host process could not be killed. Exception was: {1}", exePath, ex);
     }
 }
开发者ID:ReubenBond,项目名称:Yams,代码行数:33,代码来源:ProcessStopper.cs

示例3: WaitForExit

        internal void WaitForExit(IProcess process)
        {
            DateTime lastActivity = _lastActivity;
            DateTime lastCpuActivity = _lastActivity;
            TimeSpan previousCpuUsage = _initialCpuUsage;

            while (!process.WaitForExit(TimeSpan.FromSeconds(1)))
            {
                // there is IO activity, continue to wait.
                if (lastActivity != _lastActivity)
                {
                    // there is io activity, reset cpu to initial
                    previousCpuUsage = _initialCpuUsage;
                    lastActivity = _lastActivity;
                    continue;
                }

                // Check how long it's been since the last IO activity
                TimeSpan idleTime = DateTime.UtcNow - lastActivity;

                // If less than the timeout, do nothing
                if (idleTime < _idleTimeout) continue;

                // Write progress to prevent client timeouts
                WriteProgress();

                // There wasn't any IO activity. Check if we had any CPU activity

                // Check how long it's been since the last CPU activity
                TimeSpan cpuIdleTime = DateTime.UtcNow - lastCpuActivity;

                // If less than the timeout, do nothing
                if (cpuIdleTime < _idleTimeout) continue;

                TimeSpan currentCpuUsage = process.GetTotalProcessorTime(_tracer);

                _tracer.Trace("{0}: no io activity for {1:0}s, prev-cpu={2:0.000}s, current-cpu={3:0.000}s", 
                    process.Name, 
                    idleTime.TotalSeconds,
                    previousCpuUsage.TotalSeconds,
                    currentCpuUsage.TotalSeconds);

                if (currentCpuUsage != previousCpuUsage)
                {
                    // The process performed some compute bound operation.  We'll wait for it some more
                    lastCpuActivity = DateTime.UtcNow;
                    previousCpuUsage = currentCpuUsage;
                    continue;
                }

                // It's likely that the process is idling waiting for user input. Kill it
                process.Kill(_tracer);

                throw CreateIdleTimeoutException(process, cpuIdleTime);
            }

            process.WaitUntilEOF();
        }
开发者ID:albertjan,项目名称:kudu,代码行数:58,代码来源:IdleManager.cs


注:本文中的IProcess.Kill方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。