MyForm myForm = new MyForm();
myForm.ShowDialog();
В MyFormClass
private void MyForm_Load(object sender, EventArgs e)
{
nameLabel.Text = user.username;
waitForServerMsgThread = new Thread(() => {
Thread.CurrentThread.IsBackground = true;
AddMessage("Start of this thread");
try
{
stream = client.GetStream();
while (true)
{
AddMessage(client.Available.ToString());
if (client.Available > 0)
{
byte[] byteToRead = new byte[client.Available];
stream.Read(byteToRead, 0, byteToRead.Length);
MessageToClient message = (MessageToClient)Commands.FromBytes(byteToRead);
if (message.messageType == MessageToClient.MessageType.IncoimgMessage)
{
MessageFromPerson msg = (MessageFromPerson)message.Message;
AddMessage(msg.name + " says: " + msg.msg);
}
}
}
}
catch (Exception ex)
{
AddMessage("Could not load data from server error " + ex.ToString());
}
});
waitForServerMsgThread.Start();
FormClosing += (s, args) => waitForServerMsgThread.Abort();
}
И он даже не выполнит поток, независимо от того, помещен ли Thread.Start
в _Load или когда нажата кнопка. И я не могу загрузить форму с помощью myForm.Show();
потому что он не покажет, что закроется после того, как я его назову (ShowDialog()
вызывается из Thread)