public static async Task <ProcessPayload> RunServer(DirectoryInfo directory, CancellationToken cancellationToken = default) { var payload = new ProcessPayload(); var serverCommand = getCommandInfo(directory); var logDir = directory.CreateSubdirectory("server-process-info"); var unused = Task.Run(async() => await OperationSystemService.RunCommandAsync(serverCommand, payload, logDir, directory.FullName, cancellationToken: cancellationToken), cancellationToken); while (!payload.IsRunning()) { await Task.Delay(100, cancellationToken); } return(payload); }
public static async Task <ProcessPayload> RunClient(DirectoryInfo directory, int port, ClientMode mode, int clientTimeout = 1000, CancellationToken cancellationToken = default) { Debug.WriteLine($"running client file in directory {directory.FullName} in mode {mode}"); var payload = new ProcessPayload(); var serverCommand = getCommandInfo(directory, port, mode, clientTimeout); var logDir = directory.CreateSubdirectory($"client-{mode}-process-info"); var unused = Task.Run(async() => await OperationSystemService.RunCommandAsync( serverCommand, payload, logDir, directory.FullName, cancellationToken: cancellationToken), cancellationToken); while (!payload.IsRunning()) { await Task.Delay(100, cancellationToken); } Debug.WriteLine($"returning payload of client file in directory {directory.FullName} in mode {mode}"); return(payload); }