C# 线程问题

低调的感觉 2008-11-13 05:24:58
public delegate void SetImageInvoke();

private void Form1_Load(object sender, EventArgs e)
{
LoadImage();
}

private void LoadImage()
{
Thread.Sleep(5000);
SetImageInvoke pp = new SetImageInvoke(SetImage);
this.BeginInvoke(pp);
}

private void SetImage()
{
pictureBox1.ImageLocation = @"E:\001.jpg";
}

以上我是写的代码
为什么我在加载窗体的时候,不能拖动窗体,同时图片也在加载
只有当图片加载出来后才能拖动
好像多线程可以实现
但是我不知道怎么写
请高手指点下..3Q
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingstou 2008-11-14
  • 打赏
  • 举报
回复
因为你SLEEP的是主线程,是控制界面的,所以这时候你在主界面上做任何操作,都不会有响应.
楼上几位是正确的.
你要加载图片,要新建线程,这样就不会影响主线程运行了.
低调的感觉 2008-11-14
  • 打赏
  • 举报
回复

难道都没明白我的意思吗..?
我就是想:不管Sleep多长时间
窗体一样可以移动..
我只知道多线程可以实现..
但是我不会写..
哪位高手知道的话..请指点下..
最好有个例子..3Q
wuhuzhangwei 2008-11-13
  • 打赏
  • 举报
回复
Thread thread_loadimage=new Thread(LoadImage)
thread_loadimage.start();
这样就可以了,SLEEP多久都不会造成主线程卡住
Tll_W 2008-11-13
  • 打赏
  • 举报
回复
5000--5秒的时间太长了,主线程最好不要这样搞
yh4130a 2008-11-13
  • 打赏
  • 举报
回复
楼上正解
fengyupeng 2008-11-13
  • 打赏
  • 举报
回复
Thread.Sleep(5000);
这里休眠的是主线程

111,120

社区成员

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

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

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