C# 多线程 并行 WinForm

chenchenyangll 2010-08-14 01:20:30
我现在要使用多线程 A线程更新进度条 B线程做后台操作

不是很懂BackgroundWorker的原理 感觉它还是顺序的执行程序 求解释。。

比如 我现在只要求A线程按时间更新进度条 同时B线程做事情 该怎么做呢?

高手教教我撒~~
...全文
411 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ermuzi 2010-10-18
  • 打赏
  • 举报
回复
有点懂了。
调用Invoke方法,可以避免线程外调用异常,及未停止线程时关闭窗口时引发主窗口异常。
cancan198064 2010-09-16
  • 打赏
  • 举报
回复
我也看不懂,不过程序执行起来是很不错的,试着运行下然后再慢慢看了,不要着急哦
chenchenyangll 2010-08-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lxgloveme 的回复:]

你好 我的问题和你应该一样 但我没看懂
[/Quote]

哪里没懂。。
lxgloveme 2010-08-18
  • 打赏
  • 举报
回复
你好 我的问题和你应该一样 但我没看懂
chenchenyangll 2010-08-14
  • 打赏
  • 举报
回复
我懂了。。。谢谢
chenchenyangll 2010-08-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]

C# code
private void button10_Click(object sender, EventArgs e)
{
progressBar1.Value = progressBar1.Minimum;
Thread t = new Thread((ThreadStart)delegate
{
while (progress……
[/Quote]

饿。。哪里先后台操作方法呢?
兔子-顾问 2010-08-14
  • 打赏
  • 举报
回复
private void button10_Click(object sender, EventArgs e)
{
progressBar1.Value = progressBar1.Minimum;
Thread t = new Thread((ThreadStart)delegate
{
while (progressBar1.Value<progressBar1.Maximum)
{
this.Invoke((EventHandler)delegate { progressBar1.Value++; });
Thread.Sleep(50);//延迟以便看到效果
}
});
t.IsBackground = true;
t.Start();
}

110,500

社区成员

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

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

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