【发布时间】:2013-08-02 17:38:35
【问题描述】:
我在 MSDN 和网络上对此进行了一些阅读,现在比以前更加困惑。
我正在使用 vb.net windows 窗体应用程序并希望使用多个线程(但不是多个公寓)。
这是否意味着我需要在程序入口点设置 MTAThread 属性?
有些消息来源似乎表明是的,有些人说 Windows 窗体应用程序应该是 STA,因为 COM 对象,有些人说 MTA 将在创建线程时自动设置,有些人不是......现在完全混淆了。
如果我确实需要设置它,我可以在不禁用应用程序框架并创建一个模块来保存Public Sub Main() 的情况下执行此操作吗?
【问题讨论】:
-
您能否解释一下您要完成的工作?也许我们有适合您的差异化方法。
-
@DonA 我的第一个线程应用程序,仍然不确定我是否需要设置
,对于何时应该或不应该设置它没有足够清楚的来源。应用程序是单个公寓,多个简单线程,Windows 窗体应用程序。在默认前台线程上形成 UI,其他一切都在各种后台线程上。一些 BG 线程需要与彼此和 UI 交互。信息够不够? -
他们在做什么工作?他们应该如何相互交流?
-
一个将运行 TcpListner,另一个作为调度程序工作,基本上决定何时执行任务(taskA),使用与 JobA 相关的上下文对象来生成一个新线程来实际执行 TaskA对于 JobA,它将生成其他线程来执行诸如与 SQL db、TCP 客户端等通信之类的操作。我仍在研究它们如何相互通信,因为我仍在学习线程:)
标签: vb.net multithreading attributes entry-point