public void KillOnJobClose_ShouldKillProcessOnClose() { using (var job = new JobObject()) { job.SetLimits(new JobObjectLimits() { Flags = JobObjectLimitFlags.DieOnUnhandledException | JobObjectLimitFlags.KillOnJobClose, }); var psi = new ProcessStartInfo { FileName = "ping", Arguments = "127.0.0.1 -n 100", UseShellExecute = true, CreateNoWindow = true, }; using (var process = Process.Start(psi)) { Assert.False(process.WaitForExit(500)); // Ensure process is started job.AssignProcess(process); job.Close(); process.WaitForExit(); } } }
public void IsAssignedToProcess_Associated() { using var job = new JobObject(); var process = Process.GetCurrentProcess(); job.AssignProcess(process); Assert.True(job.IsAssignedToProcess(process)); }