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

Vb.net MTAThread属性和具有多个线程的winform应用程序,vb.net,multithreading,attributes,entry-point,Vb.net,Multithreading,Attributes,Entry Point,我在MSDN和网络上读了一些关于这方面的文章,现在比以前更困惑了 我正在使用vb.net windows窗体应用程序,希望使用多个线程(但不是多个单元) 这是否意味着我需要在程序入口点上设置MTAThread属性 一些消息来源似乎表示是的,一些人说windows窗体应用程序应该是STA,因为COM对象,一些人说MTA将在创建线程时自动设置,一些人不。。。现在完全糊涂了 如果我需要设置它,我可以不禁用应用程序框架并创建AMODLE来保存公共子主体()/ < P>我会考虑在类对象中使用 > TCP

我在MSDN和网络上读了一些关于这方面的文章,现在比以前更困惑了

我正在使用vb.net windows窗体应用程序,希望使用多个线程(但不是多个单元)

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

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


如果我需要设置它,我可以不禁用应用程序框架并创建AMODLE来保存<代码>公共子主体()/<代码>

< P>我会考虑在类对象中使用<调用> > TCPListInter/代码>,具有调用表单可以访问的属性,此类可以包含窗体可以侦听的事件,并将数据传递给UI-
委托
可能需要。任务也可以是类对象,并且可以有一个
列表(任务)
,因为它们也是类对象,所以它们现在可以引发事件,这些事件将被侦听它们的所有者听到。在单独线程上处理的任何任务都需要委托,即使是在引发事件的情况下

> P>我会考虑在类对象中使用<代码> TCPlistEng/Class,具有调用表单可以访问的属性,这个类可以有表单可以侦听的事件,并将数据传递给UI - <代码>委托。任务也可以是类对象,并且可以有一个
列表(任务)
,因为它们也是类对象,所以它们现在可以引发事件,这些事件将被侦听它们的所有者听到。在单独线程上处理的任何任务都需要委托,即使是在引发事件的情况下

你能解释一下你的目标是什么吗?也许我们为您提供了一种不同的方法。@DonA我的第一个线程应用程序,仍然不确定我是否需要设置,没有足够的源代码清楚它应该或不应该设置。应用程序是单单元、多个简单线程、windows窗体应用程序。在默认的前台线程上形成UI,在各种后台线程上形成其他所有内容。一些BG线程将需要相互交互以及与UI交互。这些信息够了吗?他们在做什么工作?它们之间应该如何通信?一个运行TcpListner,另一个作为调度器工作,基本上决定何时执行任务(taskA),使用与JobA相关的上下文对象生成一个新线程来实际执行taskA for JobA,然后生成其他线程来执行诸如与SQL db、TCP客户端对话等操作,等。我还在学习线程技术时,我还在研究他们之间如何交流:)你能解释一下你的目标吗?也许我们为您提供了一种不同的方法。@DonA我的第一个线程应用程序,仍然不确定我是否需要设置,没有足够的源代码清楚它应该或不应该设置。应用程序是单单元、多个简单线程、windows窗体应用程序。在默认的前台线程上形成UI,在各种后台线程上形成其他所有内容。一些BG线程将需要相互交互以及与UI交互。这些信息够了吗?他们在做什么工作?它们之间应该如何通信?一个运行TcpListner,另一个作为调度器工作,基本上决定何时执行任务(taskA),使用与JobA相关的上下文对象生成一个新线程来实际执行taskA for JobA,然后生成其他线程来执行诸如与SQL db、TCP客户端对话等操作,等等。我还在研究他们之间如何交谈,因为我还在学习线程:)