Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从进程读取输出时获取最后一位时出现问题_C#_Process_Console_Readline - Fatal编程技术网

C# 从进程读取输出时获取最后一位时出现问题

C# 从进程读取输出时获取最后一位时出现问题,c#,process,console,readline,C#,Process,Console,Readline,我正在构建一个小程序来帮助我在游戏中使用服务器控制台(因此我没有控制台程序的源代码)。 我让控制台在后台启动,它重定向输出,然后我把它写在可爱的小文本框中。 问题是它似乎并没有在每次输出时给我最后一行。 这是my server.cs中的一些代码: public StreamWriter inputWriter; public event EventHandler outputWritten; string outtext = outputReader.ReadLine();

我正在构建一个小程序来帮助我在游戏中使用服务器控制台(因此我没有控制台程序的源代码)。 我让控制台在后台启动,它重定向输出,然后我把它写在可爱的小文本框中。 问题是它似乎并没有在每次输出时给我最后一行。 这是my 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
欢迎来到游戏服务器!
1选择A
2选择B
3选项C

选择选项:\它正在等待,因为您要求它阅读一行,而不仅仅是阅读文本。如果将其更改为read not readline,则可能需要进行更多处理,但它允许部分行。它按原样读取每一行。。每当有新的内容要读时,当它到达最后一行时,它就把事情搞砸了。。我看着它使用断点进行读取,它发送每一行,直到它在“选择选项”之前发送了最后一个空行,它似乎停止了读取?至少我觉得很奇怪。。