2013-06-18 59 views
-1

我只是想知道一旦完成相关任务后我们如何才能杀死BackgroundWorker线程。 有没有像杀死或中止或其他可以提供帮助的方法?可以像其他线程一样杀死BackgroundWorker线程..?

+0

语言/框架?我知道.NET中的BackgroundWorker类,但无法知道这是否是您正在讨论的那个。请编辑您的问题并添加合适的语言/框架/库标签 –

+1

我在说BackgroundWorker类,我们可以使用它来使TimeTaking任务变为异步.. – Vishal

+0

如果它是.Net,那么CancelAsync(),但这是用过的因为它在做什么工作。你不能杀死它或在操作后中止它。 –

回答

2

为什么你担心在任务完成后关闭线程?

线程在垃圾回收中被清理。调用Dispose()将有助于它更快地被清理,这是'最佳实践'。

BackgroundWorker任务旨在用于WinForms或使用ThreadPool.QueueUserWorkItem(...),它将自动在内部处理线程的生命周期。

请参阅此相关的问题:How to "kill" background worker completely?

1

不,你不能在一般的杀线程的BackgroundWorker正在运行的。该线程是ThreadPool的一部分。 ThreadPool管理线程并决定何时应该分配更多或删除一些线程。你不必担心杀死线程。

这应该不是问题。这不像线程在空闲时使用任何CPU时间。它占用的少量系统资源将不会被注意到。