我有一個button1的一種形式,這種代碼爲什麼在啓動服務器tcp時,表單消失?
private void button1_Click(object sender, EventArgs e)
{
ServerTCP s = new ServerTCP();
}
然後是類serverTCP
public ServerTCP()
{
TcpListener listen = new TcpListener(IPAddress.Any, 1200);
Console.WriteLine("Waiting");
listen.Start();
while (true)
{
TcpClient client = listen.AcceptTcpClient();
Console.WriteLine("Client connected");
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];
int data = stream.Read(buffer, 0, client.ReceiveBufferSize);
string message = Encoding.Unicode.GetString(buffer, 0, data);
int idgiorno = Int32.Parse(message);
Console.WriteLine("idgiorno: " + idgiorno);
client.Close();
}
}
的問題是,當我點擊按鈕1,形式消失。我可以從開始欄看到它仍在運行,但即使我點擊它的圖標,它也不會顯示它。這就像表單失去焦點。
對我來說,就像你在你的程序的主線程上運行一個連續的循環,導致崩潰,因此你無法使用它。 – ThePerplexedOne
該程序是一個服務器,不斷等待來自客戶端的輸入。但我需要關注表單,因爲應該有另一個按鈕來關閉應用程序 – Alessandro
然後在與主應用程序分開的線程上運行代碼。您可以瞭解更多關於線程[這裏](https://msdn.microsoft.com/en-us/library/aa645740(v = vs.71).aspx)。 – ThePerplexedOne