backgroundworker 如何及时添加后台事件

zbd695321 2008-04-18 05:26:31
form里面有3个按钮 和一个backgroundworker

如何在 buttonclick事件里直接给backgroundworker 指定 不同的dowork函数

例如我点button1 backgroundworker 后台运行 core.DoLongTimeWork1();

我点button2 backgroundworker 后台运行 core.DoLongTimeWork2();

我点button3 backgroundworker 后台运行 core.DoLongTimeWork3();

也就是如何实现把函数当参数传给backgroundworker
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbd695321 2008-06-09
  • 打赏
  • 举报
回复
感谢 lextm
lextm 2008-04-23
  • 打赏
  • 举报
回复
在呼叫BackgroundWorker的RunWorkerAsync时候可以传一个参数进去。像你的情况传个int进去,然后OnWork里面从e.Argument中提取到这个int,然后一个简单的switch就好了。

当然还有其他的考虑,比如传一个enum会比int更安全等等,就看lz自己的应用了。

如果lz还想传更多的信息,那么e.Argument是object类型,你可以自定义struct或者class做参数传值。

楼上那个绑定OnWork的办法比较死板,不适合所有的情况。
sdyqingdao 2008-04-20
  • 打赏
  • 举报
回复
backgroundworker.DoWork += new DoWorkEventHandler( DoLongTimeWork1 );
zbd695321 2008-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdyqingdao 的回复:]
backgroundworker.DoWork += new DoWorkEventHandler( DoLongTimeWork1 );
[/Quote]


如果要在DoLongTimeWork1 加上参数呢?

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧