程序中我new 了一个窗体用户显示后台的进度情况,可我发现可能是因为刷新速度过快,前台无法显示,而后我又用线称试图解决这个问题,结果也是不成功...请教各位达人怎么解决..贴上用户显示那部分的代码myinsert.ExecuteNonQuery();
childform.label1.text=string.Format(themessage1,roll.ToString());然后我试图用线称实现的代码
Thread showmessageMax=new Thread(new ThreadStart(myprogress.showmessageMax));循环部分的代码
myinsert.ExecuteNonQuery();
myprogress.messageMin=string.Format(themessage1,roll.ToString());
showmessageMin.Start();
还是不能达到我想要的效果...
请问各位达人是怎么做的
childform.label1.text=string.Format(themessage1,roll.ToString());然后我试图用线称实现的代码
Thread showmessageMax=new Thread(new ThreadStart(myprogress.showmessageMax));循环部分的代码
myinsert.ExecuteNonQuery();
myprogress.messageMin=string.Format(themessage1,roll.ToString());
showmessageMin.Start();
还是不能达到我想要的效果...
请问各位达人是怎么做的
public delegate void MyInvoke(string txt);更新函数:
public void UpdateLabelText(string txt)
{
this.lable1.text=txt;
}在需要更新的地方:
MyInvoke mi=new MyInvoke(UpdateLabelText);this.BeginInvoke(mi,new object[]{text});
大致是这个意思,随手写的,可能语法还有误...试下吧...
{
flag = true;
Thread thread = new Thread(new ThreadStart(Exec));
thread.IsBackground = true;
thread.Start();
} private void Exec()
{
while(flag)
{
//process task here:
myinsert.ExecuteNonQuery(); Invoke((MethodInvoker)delegate
{
//process UI here:
this.lable1.text = String.Format(themessage1,roll.ToString());
});
//release CPU:
Thread.Sleep(10);
}
}
thanks 散分了