Thread
和 BackgroundWorker
类来促进流畅的用户界面。最近,我被分配了一个巨大的代码转换工作,需要将串行代码转换为多线程代码。由于我在这个网站上看到了一些评论,所以我有一些问题需要解决。我需要转换的代码会调用 SQL Server 进行各种查询,查询次数不定(通常都很大),这些 SQL 查询有时需要运行 30 分钟左右。因此,需要使用多线程技术。我已经使用
BackgroundWorker
设置了一个测试程序,并且运行良好。然而,有些人说由于 BackgroundWorker
使用线程池,因此不应该用于长时间运行的任务。我没有在任何地方看到过这样的说法(例如 Joesph Albahari 的 C# 4.0 In a Nutshell),而这与 MSDN 相矛盾。那么,我应该使用 BackgroundWorker
还是 Thread
来进行这样的操作呢?谢谢!
BackgroundWorker
将使我能够集中精力处理应用程序任务,而不是线程管理。我很感激30分钟的时间,但是对于这样的任务使用上述两个选项似乎并不明确,我希望以最佳方式实现多线程,这也被普遍认为是“最佳实践”。 - MoonKnight