using System.Diagnostics; namespace MxGateway.Server.Workers; /// /// Factory that creates system processes for workers. /// public sealed class SystemWorkerProcessFactory : IWorkerProcessFactory { /// public IWorkerProcess Start(ProcessStartInfo startInfo) { Process process = new() { StartInfo = startInfo, }; if (!process.Start()) { process.Dispose(); throw new InvalidOperationException("Worker process failed to start."); } return new SystemWorkerProcess(process); } }