社区
C#
帖子详情
关于在backgroundworker中操作UI控件
AQ520
2009-12-29 09:53:26
我用了backgroundworker控件 在dowork事件中循环得到一个控件,然后将这个控件加入到窗体中的一个PANEL中,怎么将这控件在循环当中加入到加入到窗体当中呢?
...全文
229
10
打赏
收藏
关于在backgroundworker中操作UI控件
我用了backgroundworker控件 在dowork事件中循环得到一个控件,然后将这个控件加入到窗体中的一个PANEL中,怎么将这控件在循环当中加入到加入到窗体当中呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
starj1
2009-12-30
打赏
举报
回复
在Background的ReportProgress事件中操作试过没有?
龙宜坡
2009-12-30
打赏
举报
回复
LZ的初衷是后台线程处理数据,但是,BackGroundWorker组件或利用委托Invoke也罢,关于界面的操作都在显示界面的那个线程中运行的!
完全关于界面的操作中,使用多线程没有意义!
龙宜坡
2009-12-30
打赏
举报
回复
没有必要这么做!
fufuki
2009-12-30
打赏
举报
回复
学习中
netusemaster
2009-12-30
打赏
举报
回复
worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.WorkerSupportsCancellation = true;
worker.DoWork += new DoWorkEventHandler(bg_DoWork);
worker.ProgressChanged += new ProgressChangedEventHandler(bg_ProgressChanged); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bg_RunWorkerCompleted);
private void bg_DoWork(object sender, DoWorkEventArgs e)
{
foreach (//你的循环)
{
control cl = ...// 得到你的控件
((BackgroundWorker)sender).ReportProgres(count ,cl); //控件传递到 bg_ProgressChanged事件
}
}
void bg_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
//addcontrol 这里可以操作UI上的控件.
}
人到中年琐事多
2009-12-29
打赏
举报
回复
老问题 了
fengqieer1986
2009-12-29
打赏
举报
回复
学习下
xiaohu9711
2009-12-29
打赏
举报
回复
用Invoke来做
LorenLiu
2009-12-29
打赏
举报
回复
需要在DoWork的事件响应中里调用BeginInvoke方法,示例代码如下:
public partial class Form1 : Form
{
// 定义delegate以实现添加control
public delegate void AddControlsHandler();
public Form1()
{
InitializeComponent();
m_BackgroundWorker = new BackgroundWorker();
m_BackgroundWorker.DoWork += new DoWorkEventHandler(m_BackgroundWorker_DoWork);
}
void m_BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
//调用form的BeginInvoke方法来调用一个delegate帮助实现添加控件
this.BeginInvoke(new AddControlsHandler(HandleAddControls));
}
void HandleAddControls()
{
this.panel1.Controls.Add(new Button());
}
private BackgroundWorker m_BackgroundWorker;
// 单击按钮以触发DoWork
private void button1_Click(object sender, EventArgs e)
{
m_BackgroundWorker.RunWorkerAsync();
}
}
AQ520
2009-12-29
打赏
举报
回复
直接在doworker中操作肯定报错。请问下怎么来处理这种情况。
C#的
Background
Worker
控件
一个
控件
的简单使用方法
Background
Worker
组件和Thread更新
UI
界面对比
Background
Worker
组件和Thread更新
UI
界面对比
c#
BackGround
Worker
控件
的应用demo 第一次上传
想学习c#的多线程应用的一个偷懒的方法,用这个
控件
就能很简单的开一个线程,可惜我还不会和
控件
绑定在一起,只能在线程
中
执行函数
VB.net
Background
Worker
使用例子很经典
VB.net
Background
Worker
使用例子
c#
BackGround
Worker
多线程
操作
的小例子
c#
BackGround
Worker
多线程
操作
的小例子,例子写的非常好
C#
111,119
社区成员
642,539
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章