如何在以前的线程完成后立即启动新线程?

时间:2010-07-23 11:45:20

标签: vb.net multithreading windows-services

我必须开发Windows服务,将文件复制到不同的服务器。 所以我必须使用多重主题来完成这项任务。 但我必须只启动3-4个线程。 因此,每当一个线程完成时,我必须启动新线程,以便线程计数应保持3或4。 那么我该如何应用检查呢? 请提供一些相关信息。

4 个答案:

答案 0 :(得分:2)

为什么不重用线程而不是产生新线程? 除此之外,请查看称为生产者/消费者队列的模式。您的生产者添加文件(其路径信息),消费者读取并采取适当的操作(执行复制操作)

答案 1 :(得分:1)

答案 2 :(得分:0)

我不懂VB,但我知道所有其他语言都有这种操作:join()。

int main(){
  threadA.start();
  threadA.join(); //here main() wait threadA end
  threadB.start(); //what you want
}

抱歉not_vb。我写它是因为我期望VB中具有相同名称的相同功能。

答案 3 :(得分:0)

在.Net 4.0中,这对任务非常容易:

Dim a As new Task(AdressOf doWork).ContinueWith(AdressOf doOtherWork)

有关更多示例(在C#中),请参阅here