问题标签 [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 投票
4 回答
3103 浏览

c# - C#/Winform:在 HTML 页面中输入数据,提交表单

我有一个带有 BackgroundWorker 的 Winform。BackgroundWorker,除其他外,必须对页面进行 HTTP 调用,填写一些数据,提交表单,并检索“单击”提交按钮后返回的 HTML。在执行此操作时,我遇到了许多障碍:

  1. 无法发布数据,因为目标网络服务器不 405 支持该方法。
  2. 再次不能使用 WebClient.UploadValues,因为网络服务器不支持 POST。
  3. 无法使用 WebBrowser 控件,因为 BackgroundWorkers 在 COM 互操作方面很糟糕,并且引发了一个异常,表明它必须在 STA 线程中(单线程单元)
  4. 无法运行另一个单独的线程,因为 BW 必须坐下来等待结果才能继续(不能,或者至少我不知道一种不会崩溃的方法)
  5. 无法更改线程的 ApartmentState,因为它是 BackgroundWorker,如果被告知进入 STA 模式,它会抛出

我应该怎么做才能解决这个问题?

[编辑]:应用入口点已经用 [STAThread] 属性标记。

0 投票
6 回答
25802 浏览

c# - C# 我可以将值添加到具有后台工作线程的列表框吗?

我希望我的后台工作人员将项目添加到列表框中,它似乎在调试时这样做,但列表框不显示值。我怀疑这与在后台工作线程中添加项目有关,我是否需要将这些添加到数组中,然后在期间从数组中填充列表框backgroundWorker1_RunWorkerCompleted

谢谢您的帮助。

0 投票
3 回答
2923 浏览

c# - BackgroundWorker 中的同步工作

我的应用程序在多个文件上独立执行耗时的工作。我创建了一个 BackgroundWorker 来将工作传递给每个文件,但似乎 backgroundworker 只能执行异步工作。是否可以同时执行多个异步任务,或者是否有类似的对象可以执行同步操作?

0 投票
2 回答
7572 浏览

vb.net - 选取框 ProgressBar 对 BackgroundWorker 无响应

在我的代码中,当单击按钮时,进度条设置为选取框,然后调用我的 BackgroundWorker,但是当调用 BackgroundWorker 时,进度条冻结或消失。我使用 BackgroundWorker 将 ReportViewer 的 RefreshReport 方法与 UI 线程分开。任何帮助表示赞赏。谢谢!

0 投票
5 回答
2530 浏览

c# - 线程停止工作

我们有一个 C# 应用程序,它连接到 FTP 服务器,下载一些文件,断开连接,并在一定时间后(由用户通过 UI 选择)重新连接并重复该过程。我们使用 BackgroundWorker 实现了这一点,但我们注意到在运行较长时间后,程序停止在 UI 和日志文件中记录其操作。那时,它没有文件可供下载,所以我们上传了一些文件,它恢复了活动,就好像什么都没发生一样。

问题是普通用户无法知道该程序仍在运行,因此我们决定使用我们自己的线程来实现它。我们做了一个更简单的程序,以排除任何其他问题,这个程序只连接到 FTP 并断开连接。它停止显示消息,就像 BackgroundWorker 一样(2 小时后一次,22 小时后一次,没有我们能找到的任何模式,并且在没有其他任何操作的计算机上)。

FTP方法是:

WriteFTPMessage 在 TextBox 中显示消息,并在原始程序中写入 .txt 文件。

0 投票
5 回答
3007 浏览

vb.net - 主 UI 窗口未更新控件 - 跨线程操作无效

好的..这是问题

我有一个主 UI 表单,它有一个控件容器,我可以向它添加一些按钮项,而且我还有一个启动侦听器的 backgroundworker 对象。当侦听器事件触发时,我想在主 UI 表单上的该控件容器中创建一个按钮。在我尝试向该容器添加新的控件项之前,一切似乎都运行良好。我得到以下异常

“跨线程操作无效:控制 'RadMagnifier_AcceptReject' 从创建它的线程以外的线程访问。”

代码像这样流动

0 投票
4 回答
338 浏览

ftp - ftp连接问题

我有一个使用 BackgroundWorker 实现的应用程序,它使用 LumiSoft 库定期连接到 ftp(用于下载和上传)。它工作得很好,但过了一段时间(比如说 2 - 3 小时)线程(后台工作人员)在 Connect 方法下阻塞(女巫不会抛出任何异常)。这是失败的代码部分:try {

假设每 2 分钟执行一次。所以它会阻止“ftp.Connect(seData.host, 21);” 这只会在一段时间后发生。知道为什么会这样吗?如果您有任何建议,请告诉我。谢谢。达纳。

0 投票
4 回答
410 浏览

ruby-on-rails - 使用 Rails 让事情在特定时间发生

就像浏览器游戏一样。用户建造建筑物,并为特定日期/时间设置计时器以完成建造并生成建筑物。

我想象有一个像恶魔这样的东西,但那会如何工作呢?对我来说,旋转+轮询似乎不是要走的路。我查看了async_observer,但这适合这样的事情吗?

0 投票
4 回答
23579 浏览

.net - .NET Backgroundworker 对象的线程优先级

我正在尝试在我正在开发的应用程序中使用 .NET Backgroundworker 对象。

互联网上的所有资料都说该对象在“后台”运行,但我无法确认该后台线程确实以“低优先级”模式运行。出现这个问题是因为在 Windows(我假设)中,后台任务可以在“正常”或“低于正常”或“低”优先级模式下运行。

在我的应用程序中,我尝试通过调用 ...

...

但这似乎没有效果。后台工作人员是否忽略此调用?

我想再解释一些:

我的应用程序是一个互联网客户端,它从室内收集有关温度、湿度等的实时数据,并使用

system.net.webclient.UploadValuesAsync(...)来电

我已经编写了应用程序,以便客户端 GUI 从腔室收集数据,为它们加上时间戳,然后将它们排队等待上传,就像这样

...

backgroundworker 的 Dowork 函数出列,然后像这样上传......

.....................

......

当我运行程序时,我发现每当调用 UploadValuesAsync 时,调试窗口就会停止。我还添加了调试语句以随时查看队列中有多少读数。如果此任务真正以低优先级运行,我希望看到队列计数在获取数据时迅速增加,然后仅在前台空闲且未获取数据时减少。但这种情况并非如此。一旦将读数添加到队列中,它就会出列并上传。因此队列计数始终为 1 或 0!

我的方法有问题吗?我根本不应该使用后台工作者对象吗?

顺便说一句,这是在运行 Windows XP 的双核笔记本电脑中。

0 投票
1 回答
921 浏览

wpf - WPF:如何使用 BackgroundWorker 处理错误

在 Windows 客户端编程方面,我是一个新手。我有一个后台工作人员,它有一个 DoWork 事件和一个 RunCompleted 事件。如果在 DoWork 中抛出异常,我想对我的 UI 进行更改,但是我不能,因为它在不同的线程中。我可以将错误传达给 RunCompleted,但这也无济于事。