如何结束线程或将其加入主线程

时间:2011-01-15 11:16:24

标签: .net multithreading .net-3.5 thread-safety

简化,我启动了一些后台线程(这是原始方法),当他们完成工作时,他们引发一个事件,在那个事件中他们调用原始方法。

引发事件时,它会在引发它的线程下运行。在我从该事件中调用原始方法之前,我想加入回主线程(或者在原始方法中加入)。从而避免可以创建更多线程的线程。

我想我担心原始线程永远不会被垃圾收集,因为他们调用了更多的线程?情况会是这样吗?以及如何确保线程已完成?

请注意,我确保在任何时候只能运行x个线程。

1 个答案:

答案 0 :(得分:2)

线程将是独立的。要在它们之间推动工作,您需要一个基本的同步队列,或类似Control.Invoke方法。

要等到 anothe 线程退出,您可以使用:

otherThreas.Join();

但在很多方面,事件方法更清晰。但是永远都会在另一个线程上,所以你可能需要切换回(例如)如上所述的UI线程。