线程问题
这个线程控制拍照等待时间,因为时间有点长,我想在这段时间内,显示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;这个标签 在线程结束后才有效果?