关键词:
已设定UI的CheckForIllegalCrossThreadCalls = false;
backWorker1_DoWork中做的事情是没隔500毫秒做一些计算,然后将计算结果赋值给UI的textbox;
赋值代码如下:tbBox1Loop.Text = (loop + 1).ToString();
运行过程中有时会抛出异常,提示冲突
对控件的操作应该交给创建控件的线程去完成,先判断InvokeRequired,然后调用Invoke方法
比如:
//使用Invoke方法来设置进度条private void RunWithInvoke()
int value = progressBar.Value;
while (value< progressBar.Maximum)
//如果是跨线程调用
if (InvokeRequired)
this.Invoke(new SetProgressBarValue(SetProgressValue), value++);
else
progressBar.Value = ++value;
参考技术A 在Backgroundworker中用ReportProgress向画面交互。
将 CheckForIllegalCrossThreadCalls 设置为 true
可以在调试时更容易查找并诊断此线程活动。请注意在调试器外部启动应用程序时,非法跨线程调用将始终引发异常。 参考技术B doWork中不能直接对空间进行访问
跨线程访问空间的方请参考:
http://www.cnblogs.com/TankXiao/p/3348292.html本回答被提问者采纳 参考技术C
这句改一下,
tbBox1Loop.Invoke(new Action(delegatetbBox1Loop.Text = (loop + 1).ToString();
));
c#关于backgroundworker的取消
我调用backgroundWorker1.RunWorkerAsync()后,在Dowork事件工作中的时候,我有一个按钮可点击,点击后调用backgroundWorker1的CancelAsync()方法,这个方法是挂起进程运行的吧,以为我再调用RunWorkerAsync()会报异常说正在工作,我该用什么方法来完全取... 查看详情
BackgroundWorker,我怎样才能显示真正的进步? C# Winforms
】BackgroundWorker,我怎样才能显示真正的进步?C#Winforms【英文标题】:BackgroundWorker,howCouldishowrealprogress?C#Winforms【发布时间】:2021-11-1615:50:28【问题描述】:我创建了使用AES加密/解密文件的应用程序,但是当我需要处理大文件时... 查看详情
如何使用 C# BackgroundWorker 报告本机 C++ 代码的进度?
】如何使用C#BackgroundWorker报告本机C++代码的进度?【英文标题】:HowtouseC#BackgroundWorkertoreportprogressinnativeC++code?【发布时间】:2012-08-1021:26:01【问题描述】:在我的VisualStudio解决方案中,我用C#实现了UI,并用原生C++实现了一些代... 查看详情
使用backgroundworker
...较差。应使用后台线程进行耗时操作,并异步更新UI。4,BackgroundWorker是WPF的一 查看详情
(C#) BackgroundWorker() ProgressChanged 不工作
】(C#)BackgroundWorker()ProgressChanged不工作【英文标题】:(C#)BackgroundWorker()ProgressChangednotworking【发布时间】:2020-05-3013:16:49【问题描述】:我有一个WPF应用程序,它由两个线程组成,模拟企业在52周内生产和销售商品(每周只允许进... 查看详情
结合 backgroundworker 和 multitread C#
】结合backgroundworker和multitreadC#【英文标题】:CombinebackgroundworkerandmultitreadC#【发布时间】:2020-11-2000:59:48【问题描述】:我有一个C#程序,它应该运行一个C++exe文件,其中包含.xlxs文件形式的几个不同输入。它看起来像这样:当Fo... 查看详情
BackgroundWorker 使用 COM 对象导致 UI 线程挂起
】BackgroundWorker使用COM对象导致UI线程挂起【英文标题】:BackgroundWorkerUsingaCOMObjectResultsinUIThreadHangup【发布时间】:2020-10-2000:09:47【问题描述】:我有一个专用类,其中包括一个BackgroundWorker,它负责从队列中运行特定于类的操作-... 查看详情
C# BackgroundWorker 的文化
】C#BackgroundWorker的文化【英文标题】:C#BackgroundWorker\'sculture【发布时间】:2010-03-0510:18:50【问题描述】:我想为我的整个应用程序设置文化。我尝试了以下方法:Thread.CurrentThread.CurrentCulture=CultureInfo.CreateSpecificCulture(wantedCulture);T... 查看详情
c#如何在backgroundworker后台线程中使用定时器?
就是说我有一项任务要用BackgroundWorker来进行异步操作,并且需要定时进行,由于定时时间比较短,只有1秒钟,所以不能使用System.Windows.Forms名字空间中的Timer来定时执行,因为它是主线程的定时器,每秒执行一次异步操作,会导... 查看详情
c#文本框,不同类,backgroundWorker
】c#文本框,不同类,backgroundWorker【英文标题】:c#textbox,differentclass,backgroundWorker【发布时间】:2016-12-0513:14:40【问题描述】:我是c#新手,有一个简单的项目,我有一个Form1,它有一个打开按钮Form2(诊断页面稍后将受密码保护... 查看详情
c#程序窗口假死
主要是因为UI线程被长时间的操作阻塞了。BackgroundWorker算是一种方法。如果不需要太多操作的话,还有一种更简单的方法。就是如果你在UI刷新过程中采用了长时间运算的for循环之类导致阻塞,可以试试在for中每次循环结束时,... 查看详情
c#组件之backgroundworker
这篇文章写得很好 C#BackgroundWorker详解,一步一步描述很清楚1、添加控件backgroundWorker1 组件label1、label2 用于显示过程和结果信息progressBar1 显示后台处理进度button1 ... 查看详情
c#中backgroundwork_dowork事件中的变量sender到底是啥?
privatevoidbackgroundWorker1_DoWork(objectsender,DoWorkEventArgse)//DoWork事件BackgroundWorkerworker=senderasBackgroundWorker;看有的资料说sender指向的就是该BackgroundWorker控件是什么意思?参考技术AC#里面所有的事件里面Sener都指的是引发事件的对象。比如... 查看详情
c# backgroundWorker 没有引发 ProgressChanged 或 RunWorkerCompleted 事件
】c#backgroundWorker没有引发ProgressChanged或RunWorkerCompleted事件【英文标题】:c#backgroundWorkernotraisingProgressChangedorRunWorkerCompletedevents【发布时间】:2011-08-3119:08:01【问题描述】:使用C#.NET3.5。看来我不是唯一一个,因为搜索似乎提出了... 查看详情
为啥我只能从 BackgroundWorker 访问一些 UI 控件属性?
】为啥我只能从BackgroundWorker访问一些UI控件属性?【英文标题】:WhycanIaccessonlysomeUIcontrolpropertiesfromBackgroundWorker?为什么我只能从BackgroundWorker访问一些UI控件属性?【发布时间】:2013-06-1008:07:16【问题描述】:我有一个简单的Windo... 查看详情
BackgroundWorker RunWorkerCompleted 事件
】BackgroundWorkerRunWorkerCompleted事件【英文标题】:BackgroundWorkerRunWorkerCompletedEvent【发布时间】:2011-02-1721:45:59【问题描述】:我的C#应用程序有几个后台工作人员。有时,一名后台工作人员会解雇另一名工作人员。当第一个后台工... 查看详情
C# 跨线程操作在 BackgroundWorker 中无效
】C#跨线程操作在BackgroundWorker中无效【英文标题】:C#Cross-threadoperationnotvalidinBackgroundWorker【发布时间】:2020-08-0801:48:58【问题描述】:我在加载主表单时将项目添加到列表框:privatevoidMainForm_Load(objectsender,EventArgse)Dictionary<strin... 查看详情
有哪位高手知道asp.net中用c#怎样怎样实现文件上传
有哪位高手知道ASP.NET中用C#怎样怎样实现文件上传,急。。。。。。。。。。说明:这是最基本的文件上传,在asp.net1.x中没有这个FileUpload控件,只有html的上传控件,那时候要把html控件转化为服务器控件后台代码:usingSystem;using... 查看详情