public static void Main()
{
Form formOnThisMessageLoop = new Form();
formOnThisMessageLoop.Show();
Form formOnOtherMessageLoop = new Form();
Task.Factory.StartNew(
() =>
{
Application.Run(formOnOtherMessageLoop);
}
);
//Thread.Sleep(50);
formOnOtherMessageLoop.HandleCreated += (obj, args) =>
formOnOtherMessageLoop.Invoke(new Action(() => { formOnOtherMessageLoop.Close(); })); //Value Close() cannot be called while doing CreateHandle().
Application.Run();
Console.Read();
}
我正在尝试各种方法来关闭第二个消息循环上的表单。在这种情况下如何正确同步我的线程?另外,我需要打Application.Exit()
两次电话还是 Form.Close() 是我能做的最好的?我看到 Application.Run() 使我的死线程保持活力。这是我的担心。假设主线程可以存活很长时间。