75得票12回答
如何在窗体关闭事件中停止BackgroundWorker?

我有一个表单,会启动一个BackgroundWorker,该worker应该更新表单自己的文本框(在主线程上),因此需要调用Invoke((Action) (...));。 如果我在HandleClosingEvent中只是执行bgWorker.CancelAsync(),那么当我调用Invo...

73得票5回答
BackgroundWorker 中的未处理异常

我的WinForms应用程序使用了一些BackgroundWorker对象来从数据库中检索信息。我使用BackgroundWorker是因为它允许界面保持不被阻塞,同时还简化了线程模型。 我偶尔会在某些后台线程中遇到DatabaseExceptions异常,在调试时至少有一个工作线程遇到了这...

62得票8回答
如何使BackgroundWorker返回一个对象

我需要让RunWorkerAsync()返回一个List<FileInfo>。 如何使后台工作线程返回一个对象?

58得票6回答
如何完全“终止”后台工作进程?

我正在编写一个Windows应用程序,它会重复运行一系列数字IO操作。 这个操作序列是由后台工作器backgroundWorker1_DoWork()启动的,当用户点击“开始”按钮时开始执行。 但是有时候我会收到“该后台工作者当前正忙……”的错误消息。 我考虑在代码中实现以下内容,使用w...

58得票4回答
这个BackgroundWorker正在忙碌中,无法同时运行多个任务。

如果我点击一个启动后台工作器两次的按钮,就会出现这个错误。This BackgroundWorker is currently busy and cannot run multiple tasks concurrently 我该如何避免这种情况?

55得票2回答
C# 工作服务 vs Windows 服务

工作服务项目模板和Windows服务项目模板之间的主要区别是什么?哪一个更好用? 什么情况下可以使用工作服务和Windows服务?

53得票12回答
生成多个线程进行工作,然后等待所有线程完成。

我只是想请教一下关于多线程任务的“最佳实践”。 例如,我们有一个C#应用程序,在启动时从我们数据库中的各种“类型”表中读取数据,并将信息存储在一个集合中,我们在整个应用程序中传递该集合。这可以防止我们每次需要此信息时都访问数据库。 目前,该应用程序正在同步地从10个表中读取数据。 我真的很想...

52得票5回答
正确的处理BackGroundWorker的方法

这种方式是正确的吗,用于处理BackGroundWorker?我不确定在调用.Dispose()之前是否需要删除事件。同时,在RunWorkerCompleted委托中调用.Dispose()是否可以正常工作?public void RunProcessAsync(DateTime dumpD...

52得票7回答
如何使用BackgroundWorker更新GUI?

我已经花了整整一天的时间尝试使用线程来运行我的应用程序,但是一直没有成功。我已经阅读了很多相关文档,但是仍然出现了很多错误,所以希望您可以帮助我。 我有一个非常耗时的方法,它会调用数据库并更新GUI界面。这个过程一直都需要进行(大约每30秒)。public class UpdateContro...

40得票10回答
如何正确等待BackgroundWorker完成?

观察以下代码片段:var handler = GetTheRightHandler(); var bw = new BackgroundWorker(); bw.RunWorkerCompleted += OnAsyncOperationCompleted; bw.DoWork += OnDo...