尽管有Console.ReadLine()语句和无限循环,应用程序仍退出(没有错误)

问题描述 投票:0回答:1

尽管有Console.ReadLine()语句和无限循环,但我的应用程序仍退出(退出代码为0)。我发现应用程序在Send()之前退出,并且正在string message = Console.ReadLine()我正在制作异步服务器,这是客户端。

 namespace NiceClient
 {
 class Program
 {
  class Client
  {

        //Variables

        public Client()
        {
            tcp = new TCP();
            ConnectToServer();
        }

        private void ConnectToServer()
        {
            tcp.Connect();
        }

        public class TCP
        {
            //Variables

            private bool alive = true;

            public void Connect()
            {
                //Code
            }

            private void ConnectCallback(IAsyncResult _result)
            {
                //Code

                while (alive)
                {
                    Send();
                    Receive();
                }
            }

            private void Send()
            {
                string message = Console.ReadLine();

                sendBuffer = Encoding.ASCII.GetBytes(message);

                stream.BeginWrite(sendBuffer, 0, sendBuffer.Length, null, null);;
            }

            private void Receive()
            {
                //Code
            }

        }
    }

    static void Main(string[] args)
    {
        Client c1 = new Client();
        Console.ReadLine();
    }
}
}
c# asynchronous server console-application
1个回答
-1
投票

使您的主线程保持活动状态。您可以在声明和初始化客户端之后直接使用循环执行此操作。

public static void Main(string[] args)
{
    Client c1 = new Client();

    while (true)
    {
        // Keep your application busy
    }        
}

而不是无限循环,这需要您自己杀死应用程序才能中断循环,您可以根据条件(例如,监听特定的按键,然后将打破循环。

© www.soinside.com 2019 - 2024. All rights reserved.