サーバー コンソールをゲームに使用するときに役立つ小さなプログラムを作成しています (そのため、コンソール プログラムのソースがありません)。バックグラウンドでコンソールを起動し、出力をリダイレクトしてから、かわいい小さなテキストボックスに書き込みます。問題は、出力を行うたびに最後の行が表示されないように見えることです。これは私のserver.csからのいくつかのコードです:
public StreamWriter inputWriter;
public event EventHandler outputWritten;
string outtext = outputReader.ReadLine();
while (!process.HasExited)
{
// check for output from server
if (outtext != null)
{
if (outputWritten != null)
{
outputWritten(outtext, new EventArgs());
}
}
outtext = outputReader.ReadLine();
}
これは出力がどのように見えるかです: 1) それが私のプログラムの外で実行される場合:
Welcome to the game server!
1 OptionA
2 OptionB
3 OptionC
Choose option:_ <-- this is where it should end waiting for input
2)私のプログラム内の場合:上記のように見えますが、最後の行が表示されず、代わりに「オプションを選択してください:」の上の空の行で終了し、入力を与えるとめちゃくちゃになります「オプションを選択: ゲーム サーバーへようこそ!」のような出力が表示されます。「Choose option: 1」と書かれているはずで、次の行に、どうすればよいかについての小さな質問がありました。