backgroundworker相关内容
每次我的代码需要与网络或数据库对话时,我都会使用后台工作程序,我可以使用太多吗?执行这些任务的正确方法是什么? 如果我不使用后台工作程序,则在远程主机关闭等情况下,gui会锁定,因此使用后台工作程序是我知道解决此问题的唯一方法. 我是自学成才的,所以我要不断学习,这要归功于所有人的回答. 解决方案 是的,您可以使用太多. BackgroundWorker使用线程池中的线程,因此
..
我有一个WPF dll,其中包含许多Window类,并公开了显示那些窗口的方法. 我还有一个单独的WinForms项目,该项目正在BackgroundWorker组件的DoWork方法内的WPF项目中调用这些方法之一. 在实例化WPF窗口的代码行上,出现以下运行时错误: 调用线程必须是STA,因为许多UI组件都需要STA. 通过Google搜索,我可以此讨论. (结果是Jo
..
我有一个使用BackgroundWorker组件的示例WinForms应用程序.它工作正常,但是当我按下Cancel按钮取消后台线程时,它并没有取消线程.当我按下Cancel按钮调用.CancelAsync()方法时,则在RunWorkerCompleted事件处理程序e.Cancelled中,属性始终保持为false.我认为当我按下Cancel按钮时,应该将其设置为true. privat
..
我在此问题上提供了很多信息,因为我不知道该怎么解决 问题: 我在一个程序上遇到问题,该程序在哪里运行时,它将冻结我的整个计算机,并且不返回任何错误(我完全无法执行任何CTRL + ALT + DEL都不起作用的操作).该程序接受来自android客户端的连接,并且atm android客户端的配置不正确,因此该连接被拒绝. 问题: 如何停止我的程序冻结整个机器? 猜想: 我
..
我已经定义了以下Spring Boot应用程序: @SpringBootApplication public class Application implements CommandLineRunner { public static void main(String[] args) { new SpringApplicationBuilder(Applicatio
..
我正在使用以下代码来处理程序中所有未处理的异常.但是这个问题没有传播到指定的方法. [STAThread] static void Main() { AppDomain currentDomain = default(AppDomain); currentDomain = AppDomain.CurrentDomain;
..
这是我正在使用的代码: try { mainWorker = new BackgroundWorker(); mainWorker.DoWork += (sender, e) => { try { //stuff I want to have happen in the background
..
我的主线程(WPF应用程序)中有一个ListBox对象.为什么我无法在BackgroundWorker线程中访问它.据我所知,每个线程的堆栈都是独立的,但是堆是常见的.不是在堆中创建ListBox对象.在这种情况下,为什么无法访问它.我尝试将ListBox引用作为参数传递,并尝试在BackgroundWorker中访问其内容.线程之间共享对象的概念不同于C ++吗? 解决方案 像WinFo
..
使用C#,WCF,WPF的客户端/服务器桌面应用程序.由于几乎每个动作都需要访问服务器(列表/创建/保存/删除/等),因此每个动作都有可能冻结整个UI.这是一个简单的实现示例,其中调用service.GetAll()可能会花费很长的时间(超过几百毫秒): private void btnRefresh_Click(object sender, RoutedEventArgs e) {
..
我正在使用后台工作程序读取值,并将值传递给Worker_ProgressChanged,以更新UI. 在Worker_DoWork中: while (agi.DvmReadyToRead) // wait for digipot to be adjusted before reading in worker { Thread.Sleep(20); Applicati
..
无论如何,在不影响C#winforms应用程序中的主线程的情况下,是否可以运行大量UI更新? 我希望避免用户单击特定事件时出现长时间延迟(在我的情况下,这是许多关闭形式的调用以处置内存) 我知道我可以在事件中使用BackgroundWorker执行冗长的操作,但是问题是您无法在此事件中更改任何UI(这将导致跨线程异常)-所以我不能放我的大量关闭表单都在这里打电话. 而且我无法在“
..
所以我使用循环创建了多个BackgroundWorkers: foreach (var item in list) { worker = new BackgroundWorker(); worker.DoWork += worker_DoWork; worker.RunWorkerAsync(item); } 现在我不知道该如何检查所有这些工人是否都完
..
我在winforms应用程序中使用BackgroundWorker来执行另一个类中发生的长时间运行的任务(执行数据库操作).由于所有工作都是在另一个类中完成的,因此取消并不是那么简单.我在另一个类(GenerateStats)中使用一个事件在后台操作完成时更新进度.我想通过取消操作来做类似的事情.我不能只在DoWork函数中调用cancellationPending,因为该方法要等到它完成并且无法
..
假设我使用的是背景工人,并且具有以下方法: private void bw_DoWork(object sender, DoWorkEventArgs e) { finalData = MyWork(sender as BackgroundWorker, e); } private void bw_ProgressChanged(object sender, ProgressCha
..
以下代码将1到100之间的数字相加并返回总和.我想做的是在后台工作程序中运行计算并返回一个值.问题是在DoWork完成之前返回returnValue.在返回值之前,我如何等待后台工作人员完成? (我似乎无法将退货放入我的DoWork中...) double returnValue = 0; var b = new BackgroundWorker(); b.DoWork += new Do
..
在我的代码中,当单击按钮时,进度条设置为选取框,然后调用我的BackgroundWorker,但是当调用BackgroundWorker时,进度条冻结或消失.我使用BackgroundWorker将ReportViewer的RefreshReport方法与UI线程分开.任何帮助表示赞赏.谢谢! Private Sub btnOtherReport_Click(ByVal sender
..
我有一个使用后台工作程序线程的c#应用程序,并且非常成功地从正在运行的线程中更新了UI.该应用程序涉及网络上的最短路径路由,随着后台工作人员的进行,我在UI上显示网络和最短路径.我想允许用户在应用程序运行时通过使用滑块来减慢显示速度. 我发现这是一个建议,但是它在vb.net中,我不清楚如何使其在c#中工作. 如何UIWorker运行时,BackgroundWorker可以从UI线程获
..
我在BackgroundWorker的DoWork中花费时间. 每当我尝试通过backgroundWorker1.CancelAsync()取消作业时,backgroundWorker1.CancellationPending就会变为“待处理",我应该等待DoWork中的下一次迭代以取消作业并自己退出. 调用后是否可以立即取消作业? 解决方案 否.通常,您不能安全地“立即"终止
..
我正在使用 node-cron 每分钟执行一些繁重的任务(更新数据库).该任务是否使用主流程来工作,或者nodejs将创建一些工作人员来完成这些任务? var CronJob = require('cron').CronJob; new CronJob('0 * * * * *', function() { //Update database every minute here co
..
此senerio有效吗? 我有一个维护物品的视图. 我有一个View模型,该模型将Item对象(实现INotifyPropertyChanged)公开为与View绑定的属性. 将Item对象传递给经过修改的Backgroundworker,然后在BackgroundWorking完成后引发PropertyChanged事件对我来说是否有效? 或者BackgroundWork
..