private async Task RedirectOut(EncodeServer server, Stream stream) { try { byte[] buffer = new byte[1024]; while (true) { var readBytes = await stream.ReadAsync(buffer, 0, buffer.Length); if (readBytes == 0) { // 終了 return; } if (logWriter != null) { logWriter.Write(buffer, 0, readBytes); } consoleText.AddBytes(buffer, 0, readBytes); logText.AddBytes(buffer, 0, readBytes); byte[] newbuf = new byte[readBytes]; Array.Copy(buffer, newbuf, readBytes); await server.client.OnConsoleUpdate(new ConsoleUpdate() { index = id, data = newbuf }); } } catch (Exception e) { Debug.Print("RedirectOut exception " + e.Message); } }
private Task WriteTextBytes(byte[] buffer, int offset, int length) { consoleText.AddBytes(buffer, offset, length); byte[] newbuf = new byte[length]; Array.Copy(buffer, newbuf, length); return(server.Client.OnConsoleUpdate(new ConsoleUpdate() { index = -1, data = newbuf })); }