1

我在 MSDN 和网络上对此进行了一些阅读,现在比以前更加困惑。

我正在使用 vb.net windows 窗体应用程序并希望使用多个线程(但不是多个公寓)。

这是否意味着我需要在程序入口点设置 MTAThread 属性?

一些消息来源似乎表明是的,有些人说 Windows 窗体应用程序应该是 STA,因为 COM 对象,有些人说 MTA 将在创建线程时自动设置,有些人不是......现在完全混淆了。

如果我确实需要设置它,我可以在不禁用应用程序框架并创建一个模块来保存它的情况下执行此操作Public Sub Main()吗?

4

1 回答 1

1

我会考虑将其TCPListener放入一个类对象中,该对象具有调用表单可以访问的属性,该类可以具有您的表单可以侦听的事件并将数据传递给 UI -delegates可能需要。任务也可以是类对象,并且可以有一个List(Of Task)因为它们也是类对象,所以它们现在可以引发事件,这些事件将被正在监听它们的所有者听到。任何在单独线程上处理的任务都需要委托,即使有事件引发。

于 2013-08-02T18:24:18.797 回答