线程问题

moligye 2012-05-24 11:05:52
这个线程控制拍照等待时间,因为时间有点长,我想在这段时间内,显示label_picRecord:拍照中,请耐心待待。出现一个问题,就是这个标签在我按下这个拍照按钮的时候,是没法立即显示的,要等整个拍完才显示出来,怎么办?高手帮下忙。。。能不能点下去的时候就显示出来这个标签?

代码出下:

private void btn_pic_Click(object sender, EventArgs e)
{
label_picRecord.Visible = true;
try
{

Thread wms_thread;
wms_thread = new Thread(new ThreadStart(TakeOnePic));

wms_thread.IsBackground = true; //将线程设置为后台线程

int i;
for (i = 0; i < Convert.ToInt32(pic_sum.Text); i++)
{

TakeOnePic();
int delaytime = 176; //延时(毫秒)
double a1;
double b1;
string a1_ = "oncetime";
string b1_ = "picsum";
//Form1.readpicconfig(ref a1_, ref b1_);

ReadConfigFile.readpicconfig(ref a1_, ref b1_);

a1 = double.Parse(a1_);
b1 = double.Parse(b1_);
double a = a1 / (b1 - 1);
a = Math.Round(a, 3) * 1000;
Thread.Sleep(Convert.ToInt32(a) - delaytime); //“-delaytime”把拍照延时去掉

//Thread.Sleep(2000);//间隔2秒

}
wms_thread.Abort();//终止线程

MessageBox.Show("拍照成功!", "拍照状态");
LogUtil.toLog("拍照状态:拍照成功!"); //Create a message log.
}

catch (Exception ex)
{
MessageBox.Show("拍照出错,请联系管理员!");
LogUtil.toLog("拍照状态:拍照出错!");
}
}
为什么 label_picRecord.Visible = true;这个标签 在线程结束后才有效果?
...全文
102 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
anzhiqiang_touzi 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
this.Invoke(delegate(){label_picRecord.Visible = true; });
你试试这句话
[/Quote]
nnggrr 2012-05-24
  • 打赏
  • 举报
回复
this.Invoke(delegate(){label_picRecord.Visible = true; });
你试试这句话
moligye 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

仅从楼主给的代码来看没看出多线程的部分。
虽然有wms_thread = new Thread(new ThreadStart(TakeOnePic));
但是没有start。
其实所有的工作都是在主线程里做的。你没给UI刷新的机会,所以当然是都运行完之后才有效果。
[/Quote]

有没有好的方法?我搜了下,好象是要弄什么异步。。。谢谢了。。。
moligye 2012-05-24
  • 打赏
  • 举报
回复
那我该怎么处理下,才能在点下去的时候立马能显示出这个标签?
cheng2005 2012-05-24
  • 打赏
  • 举报
回复
仅从楼主给的代码来看没看出多线程的部分。
虽然有wms_thread = new Thread(new ThreadStart(TakeOnePic));
但是没有start。
其实所有的工作都是在主线程里做的。你没给UI刷新的机会,所以当然是都运行完之后才有效果。
程老师2088 2012-05-24
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_47522f7f0100r443.html

就是跨线程调用的问题。我恰好做过。

111,126

社区成员

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

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

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