PictureBox加载gif图片,为什么在线程里不动了呢?

abcdwell 2010-09-21 09:37:34

PitureBox picgif;

Thread TestThread;

private void Adding()
{
picgif.Visible = true; //在此处图片只是显示出来,但是gif图片没有在运动。
Thread.Sleep(10);
picgif.Refresh(); // 做了这么多刷新动作也还是不动,很郁闷!! 如果图片默认Visible == true就可以。
picgif.Show(); // 不知道哪里出了问题???
int nCount = 0;
int nRet = 0;
nRet = func1( ); // 这个函数执行需要几秒钟,想通过picgif的运动来让客户不感觉时间久!
Thread.Sleep(10);
picgif.Visible = false; // 做完后,隐藏……
picgif.Refresh();
}

private void button1_Click(object sender, EventArgs e)
{
ThreadStart entryPoint = new ThreadStart(Adding); // 这里应该没什么问题吧??
TestThread= new Thread(entryPoint);
//TestThread.IsBackground = true;
TestThread.Start();
}
...全文
458 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
老猪o 2021-07-22
  • 打赏
  • 举报
回复

老猪o 2021-07-22
  • 打赏
  • 举报
回复

我也碰到了,楼主解决了吗,委托也是不行

哥子谭 2010-09-21
  • 打赏
  • 举报
回复
不懂LZ意思,帮顶
abcdwell 2010-09-21
  • 打赏
  • 举报
回复
求人不如求己!

 
private delegate void InvokeDelegate();
private void InvokeMethod()
{
picgif.Visible = true;
}


button_click()
{
this.Invoke(new InvokeDelegate(InvokeMethod)); // 加在这里就可以了。
,,,,,,,,,,,,,,,
}
abcdwell 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 myjavamosquito 的回复:]
没有Invoke。
[/Quote]
如何Invoke,哥们真是惜字如金啊@@@@
abcdwell 2010-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]
picgif,你跨线程直接访问不Invoke?你设置了那个变量?
[/Quote]
可以在代码里给我指出来吗?
myjavamosquito 2010-09-21
  • 打赏
  • 举报
回复
没有Invoke。
abcdwell 2010-09-21
  • 打赏
  • 举报
回复
// PitureBox picgif;  //这里只是为了告诉大家他是一个什么控件,实际是直接添加在窗口上的。
yinrongg 2010-09-21
  • 打赏
  • 举报
回复
使用委托去实现吧
兔子-顾问 2010-09-21
  • 打赏
  • 举报
回复
picgif,你跨线程直接访问不Invoke?你设置了那个变量?

110,567

社区成员

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

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

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