草庐IT

BackGroundWorker

全部标签

c# - BackgroundWorker 异常处理

我正在使用以下组件:一个库(抛出异常)用于测试我的日志记录的测试控制台企业图书馆异常处理应用程序block企业图书馆日志应用程序block我正在使用后台工作程序调用库方法。该库抛出异常,但从未调用RunWorkerCompleted处理程序。捕获异常的唯一方法是用try/catchblock包围我的DoWork处理程序代码。是否误解了RunWorkerCompletedEventArgs.Error属性?不是为了获取被BackgroundWorker捕获的异常吗?代码示例:staticBackgroundWorkerw=newBackgroundWorker();w.DoWork+=n

C#-后台 worker 的 CancelAsync() 不工作?

我想中止该过程但无法这样做,我正在使用后台工作程序和我的处理功能。publicvoidInit(){bw=newBackgroundWorker();bw.WorkerSupportsCancellation=true;bw.DoWork+=newDoWorkEventHandler(bw_DoWork);bw.RunWorkerCompleted+=newRunWorkerCompletedEventHandler(bw_RunWorkerCompleted);}voidbw_DoWork(objectsender,DoWorkEventArgse){if(bw.Cancellati

c# - 从事件处理程序在主线程中执行一个方法

我有一个继承自Queue类的自定义Queue类。它有一个事件ItemAdded。在此事件的事件处理程序中,我正在执行一个方法。但是它在主线程之外运行,尽管我希望它在主线程中运行。我不知道该怎么做。有什么建议吗?//MycustomclassusingSystem;usingSystem.Collections;//Requiredtoinheritnon-genericQueueclass.namespaceQueueWithEvent{publicclassSmartQueue:Queue{publicdelegatevoidItemAddedEventHandler(objects

c# - 在 BackGroundWorker 中运行方法并显示 ProgressBar

我想要的是,当某些方法正在执行某些任务时,UI会保持自身处于事件状态,并且我想在进度条中显示工作进度。我有一个方法,一个BackGroundWorker和一个Progressbar。我想在BackGroundWorker开始运行时调用该方法并显示进度。该方法包含一个循环。因此,它可以报告进度。那么,可以做什么呢?privatevoidForm1_Load(objectsender,EventArgse){//TODO:Thislineofcodeloadsdataintothe'dataSet1.TBLMARKET'table.Youcanmove,orremoveit,asneede

c# - 通过进度条显示执行进度

我有一个愚蠢的问题,但我卡住了。我正在从我的代码中执行一个存储过程过程需要时间,所以为此我显示了一个进度条,它显示了执行的进度,但是存储过程执行并且没有任何我增加进度条的值。这是我的代码voidbtnYes_Click(objectsender,EventArgse){if(DialogResult.Yes==MessageBox.Show("Areyousure","",MessageBoxButtons.YesNo)){try{dbDataEntitiesdb=newdbDataEntities();stringmyquery="DECLARE@return_valueintEXE

c# - 您能否链接到使用 BackgroundWorker 而不将其作为组件放置在表单上的一个很好的示例?

我记得很多年前(2005年)我在我的代码中使用了BackgroundWorker而没有为它使用可视化组件,但我不记得如何(不幸的是我非常健忘,并且在我停止后很快就忘记了一切使用它)。也许我正在扩展BackgroundWorker类。您能否链接到一个以这种方式使用BackgroundWorker的好示例? 最佳答案 This文章清楚地解释了您需要的一切。HerearetheminimumstepsinusingBackgroundWorker:InstantiateBackgroundWorkerandhandletheDoWorke

C# backgroundWorker 报告字符串?

我如何从backgroundWorker向我的windows.form报告一个字符串(如“正在搜索文件......”,“找到选择......”)以及一个百分比。此外,我有一个大类,其中包含我想在backgroundWorker_Work中运行的方法。我可以通过Class_method()来调用它;但是我无法报告我的完成百分比或被调用类的任何内容,只能通过backgroundWorker_Work方法。谢谢! 最佳答案 我假设WCF也有这个方法publicvoidReportProgress(intpercentProgress,Ob

c# - 如何在 C# backgroundworker progressed changed 事件中发送更多参数

我明白我们如何将一个变量(progresspercentage)传递给“progresschanged”函数,就像这样。backgroundWorker1.ProgressChanged+=newProgressChangedEventHandler(backgroundWorker1_ProgressChanged);...worker.ReportProgress(pc);...privatevoidbackgroundWorker1_ProgressChanged(objectsender,ProgressChangedEventArgse){this.progressBar1.

c# - 执行 SQL 查询时显示进度条

我想在从SQL数据库读取数据时通知用户我决定创建一个带有进度条的表单,但它不起作用——可能是因为需要一个线程。我想以编程方式创建表单ProgressBarpb=newProgressBar();pb.MarqueeAnimationSpeed=30;pb.Style=ProgressBarStyle.Marquee;pb.Dock=DockStyle.Fill;progressForm.ClientSize=newSize(200,50);progressForm.FormBorderStyle=FormBorderStyle.FixedDialog;progressForm.Star

c# - BackgroundWorker & Timer,只读取日志文件的新行?

我的应用程序写入一个日志文件(当前使用log4net)。我想设置一个计时器和一个后台worker来读取日志文件并将其内容打印到我的表单中的某个控件中,同时它正在被写入。我不能使用FileSystemWatcher类,因为它似乎损坏了:有时事件“更改”会触发,有时不会。而且它的“池化率”极低。所以我创建了一个Timer和一个FileSystemWatcher。在计时器的“滴答”事件中,后台工作人员执行其工作。问题是:如何只读取自worker上次检查后添加的行?publicLogForm(){InitializeComponent();logWatcherTimer.Start();}pr