问题标签 [backgroundworker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1346 浏览

c# - 后台工作者:取消期间的异常

我有一个可以取消的后台工作人员。

当 CancelPending 变量变为 true 时(响应 UI 上调用 worker.CancelAsynch() 的用户交互),正常流程会自行中断,抛出异常,因为如果那样(因为正常流程被中断,会抛出大量 null ref 异常)

因此,当工作人员返回时,我希望能够区分工作人员被取消时引发的异常(以静默方式忽略它们)和工作人员未被取消时引发的异常(将它们报告给 UI)。

我的代码如下(对不起 c#/vb 混合...):

工人阶级:

回电:

然后,当我在执行 worker.CancelAsynch() 时,e.Cancelled 在 Completed 回调中设置为 false(这不是我所期望的)。如果我在工作人员中注释掉“Trow exc”,如果我再次测试,则 e.Cancelled 正确设置为 true。

获取我想要的信息的最干净的方法是什么,即:我想知道当worker处于cancellationPending状态时是否抛出了在完成处理程序中弹出的异常?

0 投票
3 回答
181 浏览

c# - 调度程序的排序

我需要实现一些东西。可以在我的程序中完成某些任务的东西。例如,每隔十秒,将一些内容写入文件中的日志。当然它假设在后台线程中运行。

我应该在哪里挖?我对多线程不是很熟悉。我听说过 BackgroundWorker 类,但我不确定它是否适合这里..

0 投票
2 回答
746 浏览

c# - 请帮我使这个代码线程安全

我在使数据加载和过滤线程安全方面遇到了一些问题。

我的控件基类中的以下代码通过 BackgroundWorker 处理所有数据填充。这往往会在“this.DataWorker.RunWorkerAsync()”上抛出错误,说明 BackgroundWorker 很忙。

代码在两个可能的地方被调用。首先通过控件所在表单上的计时器:

其次,任何时候用户从多个下拉列表中选择过滤器选项:

主窗体上的 Timer 每 60 秒运行一次,并将 true 传递给 Populate 方法。将 reload 作为 true 传递告诉 BackgroundWorker 它需要从 WebService 中拉下一组新数据:

据我所知,当我设法在 Timer 触发填充事件的同时单击过滤器选项时会发生错误。我认为 Populate 方法中缺少一些东西,即锁,但我不确定如何在这种情况下正确使用它。

该代码有利于用户输入。如果用户选择过滤器选项,则应阻止自动更新,如果触发自动更新,则暂时禁用过滤器选项。如果它们同时触发,则用户输入应优先(如果可能)。

希望有人能帮忙!

0 投票
4 回答
6197 浏览

python - 运行 web.py 作为守护进程

我有一个简单的 web.py 程序来加载数据。在服务器中,我不想安装 apache 或任何网络服务器。

我尝试将其作为后台服务使用http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/

和子类化:(来自http://www.jejik.com/files/examples/daemon.py

但是,web.py 软件没有加载(即:服务没有监听)

如果我直接调用它(即:不使用守护程序代码)工作正常。

0 投票
3 回答
1048 浏览

c# - 根据选择重绘工具条

我被要求编写 c# winforms 应用程序,它使用户能够从复选框列表中选择选项,并让它自动重绘/重绘带有所选项目的工具条。

我是winforms的新手,所以我不知道如何处理它。我应该使用 BackgroundWorker 进程吗?无效()?

只是有点迷茫。

任何指向正确方向的帮助将不胜感激。

0 投票
3 回答
2999 浏览

.net - WPF BackgroundWorker ListView 过滤器问题

我有一个 WPF ListView,我试图在 BackgroundWorker 中进行过滤。我的代码如下所示:

此代码通过过滤运行,但失败并显示错误“调用线程无法访问此对象,因为不同的线程拥有它。” 在以下行:

这里会有什么问题?我似乎找不到任何通过 BackgroundWorker 过滤的样本。

更新:有谁知道使用 BackgroundWorker 过滤 WPF ListView 的示例?

0 投票
4 回答
4159 浏览

ruby-on-rails - 在 Rails 中组织工作进程的最佳方式是什么?

我经常有一些代码应该按计划运行,或者作为带有一些参数的后台进程运行。共同的元素是它们在调度过程之外运行,但需要访问 Rails 环境(可能还有传入的参数)。

什么是组织这个的好方法,为什么?如果您喜欢使用特定的插件或 gem,请解释您觉得它方便的原因——不要只列出您使用的插件。

0 投票
3 回答
2285 浏览

c# - GUI 在获取数据时没有响应

我的应用程序经常使用 WebRequest 从网页中获取数据,但是在获取时无法单击按钮等。我知道我必须使用线程/后台工作者,但我无法让它正常工作;它不会使 GUI 更具响应性。

我想应用某种线程的代码,以便它停止使我的应用程序无响应:


编辑:谢谢你,lc,我试过类似的东西。但是我这样使用后台工作人员的问题是;如何将 queryResult 返回到调用(在我的情况下为 SQLGet,在你的情况下)StartQuery 的函数?

在我的示例中,返回的字符串将用作 void 中的局部变量,该字符串在内部被调用。

并且可能同时有很多查询,所以我不想冒险将它分配给全局变量。

0 投票
3 回答
1135 浏览

winforms - 处理“重”数据时的 WinForms UI 响应能力

我正在修改 Windows 窗体以允许在 UI 保持响应时在后台加载数据。数据检索和绑定都需要相当长的时间。理想情况下,我会在后台同时进行这两项操作,但是对于我应该在后台(如在主线程之外)进行何种 UI 更新存在一些歧义。一个在后台显示数据检索和数据绑定的可靠示例将非常有帮助。

0 投票
3 回答
2881 浏览

c# - 如何通过反射添加BackgroundWorker RunWorkerCompleted 事件?

通常我会去:

ReportManager 类是一个包含我要使用的事件处理程序的静态类。

现在,我创建了一个 BackgroundWorker,并希望附加 ReportManager 中定义的 RunWorkerCompleted 事件。但是 ReportManager 不能被引用,否则会发生循环引用,因此需要反射。

任何帮助将不胜感激。

我已经查看了以下内容,但还没有走得太远: