具有多个线程的MTAThread属性和winform应用程序

时间:2013-08-02 17:38:35

标签: vb.net multithreading attributes entry-point

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

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

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

有些消息来源似乎表示肯定,有些人说由于COM对象,Windows窗体应用程序应该是STA,有人说MTA会在创建线程时自动设置,有些则不会......现在彻底混淆。

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

1 个答案:

答案 0 :(得分:1)

我会考虑将TCPListener置于类对象中,使用调用表单可以访问的属性,此类可以包含表单可以侦听的事件并将数据传递给UI - delegates需要。任务也可以是类对象,并且可以有List(Of Task)因为它们也是类对象,所以它们现在可以引发事件,这些事件将由正在侦听它们的所有者听到。即使事件发生,任何在单独线程上处理的任务也需要代理。