public void Dispose() { _disposing = true; // best effort process disposal try { if (_process != null) { if (!_process.HasExited) { _process.Kill(); if (!_process.WaitForExit(processExitTimeoutInMilliseconds)) { _workerProcessLogger.LogWarning($"Worker process has not exited despite waiting for {processExitTimeoutInMilliseconds} ms"); } } _process.Dispose(); } _processMonitor.Dispose(); } catch (Exception exc) { _workerProcessLogger?.LogDebug(exc, "Exception on worker disposal."); //ignore } }
static bool ConsoleEventCallback(int eventType) { if (eventType == 2) { monitor?.Dispose(); } return(false); }
void ReleaseResources() { if (procMon != null) { procMon.TreeStarted -= ProcMon_TreeStarted; procMon.TreeDestroyed -= Monitor_TreeDestroyed; procMon.Dispose(); } }
public void ReleaseResources() { watcherToken?.Cancel(); if (procMon != null) { procMon.TreeStarted -= ProcMon_TreeStarted; procMon.Dispose(); } }
public void ReleaseResources() { procMon?.Dispose(); if (butler != null) { butler.RequestReceived -= Butler_RequestReceived; butler.NotificationReceived -= Butler_NotificationReceived; butler.Dispose(); } }
public override void Dispose() { isDisposed = true; watcherToken?.Cancel(); playTask?.Wait(5000); // Give startup script time to gracefully shutdown. procMon?.Dispose(); stopWatch?.Stop(); if (playRuntime?.IsDisposed == false) { playRuntime?.Dispose(); } watcherToken?.Dispose(); currentEmuProfile = null; }
public static List <SiteProcessInfo> GetProcesses() { List <SiteProcessInfo> list = new List <SiteProcessInfo>(); var server = new ServerManager();//请使用管理员模式 foreach (Site site in server.Sites) { SiteProcessInfo siteInfo = new SiteProcessInfo() { Name = site.Name, ProcessInfo = new Dictionary <string, ProcessInfo>() }; foreach (var application in site.Applications) { siteInfo.ProcessInfo[application.ApplicationPoolName] = new ProcessInfo(); } list.Add(siteInfo); } foreach (var item in server.ApplicationPools) { foreach (WorkerProcess workerProcess in item.WorkerProcesses) { var t = workerProcess.ProcessId; var processes = Process.GetProcesses(); var p = processes.FirstOrDefault(q => q.Id == t); ProcessMonitor processMonitor = new ProcessMonitor(p); processMonitor.Init(); processMonitor.UpdateInfo(); foreach (var site in list) { if (site.ProcessInfo.TryGetValue(workerProcess.AppPoolName, out ProcessInfo processInfo)) { processInfo.Id = workerProcess.ProcessId; processInfo.InstanceName = processMonitor.InstanceName; processInfo.ProcessName = processMonitor.ProcessName; processInfo.FileName = processMonitor.FileName; processInfo.MemoryUsage = processMonitor.MemoryUsage; processInfo.CpuUsage = processMonitor.CpuUsage; } } processMonitor.Dispose(); } } return(list); }
public void Dispose() { _disposing = true; // best effort process disposal try { if (_process != null) { if (!_process.HasExited) { _process.Kill(); _process.WaitForExit(); } _process.Dispose(); } _processMonitor.Dispose(); } catch (Exception exc) { _workerProcessLogger?.LogDebug(exc, "Exception on worker disposal."); //ignore } }
public void ReleaseResources() { procMon?.Dispose(); }
public void ReleaseResources() { watcherToken?.Cancel(); procMon?.Dispose(); }
private void ReleaseResources() { procMon?.Dispose(); }
public void ReleaseResources() { fileWatcher?.Dispose(); procMon?.Dispose(); }
public virtual void Dispose() { watcherToken?.Cancel(); procMon?.Dispose(); }