示例#1
0
        private void SafelyCloseProcess(ContainerProcess containerProcess)
        {
            var processToClose = containerProcess.Process;

            if (!processToClose.HasExited && !processToClose.CloseMainWindow())
            {
                processToClose.Kill();
            }
            else
            {
                processToClose.Close();
            }

            if (this.containerProcessDictByPort.TryRemove(containerProcess.Port, out var container))
            {
                Debug.WriteLine($"{typeof(ProcessManager).Name}: removed container[{container.Port}] ({DateTime.Now})");

                if (container.RoleInstance != null)
                {
                    RoleEnvironment.SafeRemove(container.RoleInstance);
                }
            }
        }
        public ContainerProcessTests()
        {
            Process = Substitute.For<IProcess>();

            ContainerProcess = new ContainerProcess(Process);
        }