我目前正在尝试在。net通用主机的东西与WinForms相结合,我正在尝试这样的东西:
var mainmenu = new Thread(() => Application.Run(_mainMenuView as Form));
mainmenu.SetApartmentState(ApartmentState.STA);
mainmenu.Start();
与_mainMenuView是由MainMenuView表单实现的接口,我从DI yadayadayada。
我现在的问题是:
- 这是否有不可预见的后果?
- 我需要将线程连接回我的"主"的线程吗?
- 线程死亡,如果我只是关闭窗体?
- 通过接口获取或设置属性有多安全?我需要关心调用吗?
谢谢你的帮助
我也一直在尝试这个。您可以在另一个线程上运行Application.Run
,
- 我是否需要将线程连接回我的"主"的线程吗?
- 通过接口获取或设置属性有多安全?我需要关心调用吗?
如果你想从一个与application.run运行的线程不同的线程中设置任何属性。你应该关心一下锁。
- 线程死亡,如果我只是关闭窗体?
线程将完成当你关闭表单。
- 这是否有不可预见的后果?
您将面临的一个问题是,Application
类使用静态属性/方法。所以当你试图在application.run上创建多个线程时,你可能会得到奇怪的行为。