jjzjj

backgroundWorker1

全部标签

c# - 如何使用 BackgroundWorker?

我知道它有3个方法。在我的程序中,我有一个发送消息的方法。通常很晚,程序有时根本不响应按钮按下而发送消息。有时比我预期的晚5秒,程序就会卡住。我想使用一个BackgroundWorker来按预期发送消息,并让程序始终正常运行。我有在按钮处理程序中发送消息的代码。现在我把这个等效代码放在哪里?我希望所有这些仍然可以通过按下按钮来处理。这是合适的处理程序吗?backgroundWorker1.RunWorkerAsync();并在:privatevoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse){}我要把我的代码放在按钮处

c# - BackgroundWorker 中未处理的异常

我的WinForms应用使用了多个BackgroundWorker对象从数据库中检索信息。我正在使用BackgroundWorker,因为它允许UI在长时间运行的数据库查询期间保持畅通无阻,并且它为我简化了线程模型。我在其中一些后台线程中偶尔会遇到DatabaseExceptions,并且我在调试时在工作线程中至少看到了其中一个异常。我相当有信心这些异常是超时,我认为不时发生这种情况是合理的。我的问题是当这些后台工作线程之一发生未处理的异常时会发生什么。我不认为我可以在另一个线程中捕获异常,但我可以期望我的WorkerCompleted方法被执行吗?我可以查询BackgroundWor

c# - BackgroundWorker 中未处理的异常

我的WinForms应用使用了多个BackgroundWorker对象从数据库中检索信息。我正在使用BackgroundWorker,因为它允许UI在长时间运行的数据库查询期间保持畅通无阻,并且它为我简化了线程模型。我在其中一些后台线程中偶尔会遇到DatabaseExceptions,并且我在调试时在工作线程中至少看到了其中一个异常。我相当有信心这些异常是超时,我认为不时发生这种情况是合理的。我的问题是当这些后台工作线程之一发生未处理的异常时会发生什么。我不认为我可以在另一个线程中捕获异常,但我可以期望我的WorkerCompleted方法被执行吗?我可以查询BackgroundWor

c# - 如何等待 BackgroundWorker 取消?

考虑一个为您做事的对象的假设方法:publicclassDoesStuff{BackgroundWorker_worker=newBackgroundWorker();...publicvoidCancelDoingStuff(){_worker.CancelAsync();//todo:FigureoutawaytowaitforBackgroundWorkertobecancelled.}}如何等待BackgroundWorker完成?过去人们曾尝试过:while(_worker.IsBusy){Sleep(100);}但是thisdeadlocks,因为IsBusy直到RunWo

c# - 如何等待 BackgroundWorker 取消?

考虑一个为您做事的对象的假设方法:publicclassDoesStuff{BackgroundWorker_worker=newBackgroundWorker();...publicvoidCancelDoingStuff(){_worker.CancelAsync();//todo:FigureoutawaytowaitforBackgroundWorkertobecancelled.}}如何等待BackgroundWorker完成?过去人们曾尝试过:while(_worker.IsBusy){Sleep(100);}但是thisdeadlocks,因为IsBusy直到RunWo

c# - 异步/等待与 BackgroundWorker

这几天测试了.net4.5和c#5的新特性。我喜欢它的新异步/等待功能。早些时候我用过BackgroundWorker使用响应式UI在后台处理较长的进程。我的问题是:在拥有这些不错的新功能之后,我应该什么时候使用async/await以及什么时候使用BackgroundWorker?两者的常见场景是什么? 最佳答案 对于许多人来说,这可能是TL;DR,但是,我认为比较await与BackgroundWorker就像比较苹果和橘子,我对此的看法如下:BackgroundWorker旨在为您希望在后台执行的单个任务建模,在线程池线程上。

c# - 异步/等待与 BackgroundWorker

这几天测试了.net4.5和c#5的新特性。我喜欢它的新异步/等待功能。早些时候我用过BackgroundWorker使用响应式UI在后台处理较长的进程。我的问题是:在拥有这些不错的新功能之后,我应该什么时候使用async/await以及什么时候使用BackgroundWorker?两者的常见场景是什么? 最佳答案 对于许多人来说,这可能是TL;DR,但是,我认为比较await与BackgroundWorker就像比较苹果和橘子,我对此的看法如下:BackgroundWorker旨在为您希望在后台执行的单个任务建模,在线程池线程上。

c# - Backgroundworker 内部的测试执行突然在具有许多子元素的元素上结束

我的一般设置:我们编写了一个带有小型图形用户界面的小型excel导入程序,它允许非程序员使用“Button.Click”等命令编写和执行图形用户界面测试。底层框架是TestStack.White。在导入excel文件和其他一些用户交互后,测试在System.ComponentModel.BackgroundWorker中开始,只要我不查看(甚至不与之交互)包含大量子元素的元素,它就可以正常工作。但只要我与TestStack.White.UIItems.WindowItems.Window或TestStack.White.UIItems.UIItemContainer交互,其中包含很多元

c# - 如何从类(class)内部向 BackgroundWorker 报告进度?

我的WinForm调用了一个执行一些复制操作的类。我想在表格上显示这件事的进展。我想使用Backgroundworker,但我不知道如何从类中报告进度到表单(/backgroundworker) 最佳答案 使用OnProgressChanged()BackgroundWorker的方法报告进度并订阅ProgessChangedEventBackgroundWorker更新GUI中的进度。您的复制类知道BackgroundWorker并订阅ProgressChanged。它还公开了一个自己的ProgressChanged事件,该事件由

c# - UIProgressView 未从 BackgroundWorker.ProgressChanged 更新

我正在将我的Xamarin.Android应用程序移植到Xamarin.iOS,我无法更新进度条,哪里出错了?在updateProgressBar()中正确设置了值,本示例中的progressBarValue设置为预期的0.25,但UIProgressView未在屏幕上更新。progressBar是Storyboard上的一个UIProgressView。publicBackgroundWorkerbackgroundWorker{get;privateset;}privatefloatprogressBarValue{get;set;}publicoverridevoidViewDi