backgroundworker相关内容

我可以使用过多的后台工作线程吗?

每次我的代码需要与网络或数据库对话时,我都会使用后台工作程序,我可以使用太多吗?执行这些任务的正确方法是什么? 如果我不使用后台工作程序,则在远程主机关闭等情况下,gui会锁定,因此使用后台工作程序是我知道解决此问题的唯一方法. 我是自学成才的,所以我要不断学习,这要归功于所有人的回答. 解决方案 是的,您可以使用太多. BackgroundWorker使用线程池中的线程,因此 ..
发布时间:2020-09-18 05:29:48 其他开发

从WinForms BackgroundWorker创建WPF窗口

我有一个WPF dll,其中包含许多Window类,并公开了显示那些窗口的方法. 我还有一个单独的WinForms项目,该项目正在BackgroundWorker组件的DoWork方法内的WPF项目中调用这些方法之一. 在实例化WPF窗口的代码行上,出现以下运行时错误: 调用线程必须是STA,因为许多UI组件都需要STA. 通过Google搜索,我可以此讨论. (结果是Jo ..
发布时间:2020-09-18 05:29:45 其他开发

C#,后台工作者

我有一个使用BackgroundWorker组件的示例WinForms应用程序.它工作正常,但是当我按下Cancel按钮取消后台线程时,它并没有取消线程.当我按下Cancel按钮调用.CancelAsync()方法时,则在RunWorkerCompleted事件处理程序e.Cancelled中,属性始终保持为false.我认为当我按下Cancel按钮时,应该将其设置为true. privat ..
发布时间:2020-09-18 05:29:41 C#/.NET

WPF C#应用程序将冻结我的整个计算机,每次运行2-3次

我在此问题上提供了很多信息,因为我不知道该怎么解决 问题: 我在一个程序上遇到问题,该程序在哪里运行时,它将冻结我的整个计算机,并且不返回任何错误(我完全无法执行任何CTRL + ALT + DEL都不起作用的操作).该程序接受来自android客户端的连接,并且atm android客户端的配置不正确,因此该连接被拒绝. 问题: 如何停止我的程序冻结整个机器? 猜想: 我 ..
发布时间:2020-09-18 05:29:29 C#/.NET

未处理的异常未在C#中捕获

我正在使用以下代码来处理程序中所有未处理的异常.但是这个问题没有传播到指定的方法. [STAThread] static void Main() { AppDomain currentDomain = default(AppDomain); currentDomain = AppDomain.CurrentDomain; ..
发布时间:2020-09-18 05:29:22 C#/.NET

在BackgroundWorker和主线程之间共享对象

我的主线程(WPF应用程序)中有一个ListBox对象.为什么我无法在BackgroundWorker线程中访问它.据我所知,每个线程的堆栈都是独立的,但是堆是常见的.不是在堆中创建ListBox对象.在这种情况下,为什么无法访问它.我尝试将ListBox引用作为参数传递,并尝试在BackgroundWorker中访问其内容.线程之间共享对象的概念不同于C ++吗? 解决方案 像WinFo ..
发布时间:2020-09-18 05:29:15 C#/.NET

BackgroundWorker是保持WCF/WPF应用程序响应能力的唯一方法吗?

使用C#,WCF,WPF的客户端/服务器桌面应用程序.由于几乎每个动作都需要访问服务器(列表/创建/保存/删除/等),因此每个动作都有可能冻结整个UI.这是一个简单的实现示例,其中调用service.GetAll()可能会花费很长的时间(超过几百毫秒): private void btnRefresh_Click(object sender, RoutedEventArgs e) { ..
发布时间:2020-09-18 05:29:11 C#/.NET

执行长时间运行的UI更改而不会阻塞主线程

无论如何,在不影响C#winforms应用程序中的主线程的情况下,是否可以运行大量UI更新? 我希望避免用户单击特定事件时出现长时间延迟(在我的情况下,这是许多关闭形式的调用以处置内存) 我知道我可以在事件中使用BackgroundWorker执行冗长的操作,但是问题是您无法在此事件中更改任何UI(这将导致跨线程异常)-所以我不能放我的大量关闭表单都在这里打电话. 而且我无法在“ ..
发布时间:2020-09-18 05:29:03 C#/.NET

BackgroundWorker取消

我在winforms应用程序中使用BackgroundWorker来执行另一个类中发生的长时间运行的任务(执行数据库操作).由于所有工作都是在另一个类中完成的,因此取消并不是那么简单.我在另一个类(GenerateStats)中使用一个事件在后台操作完成时更新进度.我想通过取消操作来做类似的事情.我不能只在DoWork函数中调用cancellationPending,因为该方法要等到它完成并且无法 ..
发布时间:2020-09-18 05:28:57 C#/.NET

BackgroundWorker返回值?

以下代码将1到100之间的数字相加并返回总和.我想做的是在后台工作程序中运行计算并返回一个值.问题是在DoWork完成之前返回returnValue.在返回值之前,我如何等待后台工作人员完成? (我似乎无法将退货放入我的DoWork中...) double returnValue = 0; var b = new BackgroundWorker(); b.DoWork += new Do ..
发布时间:2020-09-18 05:27:51 C#/.NET

c#-在执行期间从UI将信息传递给BackgroundWorker

我有一个使用后台工作程序线程的c#应用程序,并且非常成功地从正在运行的线程中更新了UI.该应用程序涉及网络上的最短路径路由,随着后台工作人员的进行,我在UI上显示网络和最短路径.我想允许用户在应用程序运行时通过使用滑块来减慢显示速度. 我发现这是一个建议,但是它在vb.net中,我不清楚如何使其在c#中工作. 如何UIWorker运行时,BackgroundWorker可以从UI线程获 ..
发布时间:2020-09-18 05:27:44 C#/.NET

如何立即取消正在工作的BackgroundWorker?

我在BackgroundWorker的DoWork中花费时间. 每当我尝试通过backgroundWorker1.CancelAsync()取消作业时,backgroundWorker1.CancellationPending就会变为“待处理",我应该等待DoWork中的下一次迭代以取消作业并自己退出. 调用后是否可以立即取消作业? 解决方案 否.通常,您不能安全地“立即"终止 ..
发布时间:2020-09-18 05:27:40 C#/.NET

WPF MVVM在后台工作程序上更新视图模型

此senerio有效吗? 我有一个维护物品的视图. 我有一个View模型,该模型将Item对象(实现INotifyPropertyChanged)公开为与View绑定的属性. 将Item对象传递给经过修改的Backgroundworker,然后在BackgroundWorking完成后引发PropertyChanged事件对我来说是否有效? 或者BackgroundWork ..
发布时间:2020-09-18 05:27:33 其他开发