猿问

非界面线程操作控件的问题2

if (this.lblInfo.InvokeRequired)
this.Invoke(new Action(() =>
{
this.lblInfo.Text = "服务器连接失败,请稍后再试";
Thread.Sleep(10000);
this.lblInfo.Text = "";
}));
else
{
this.lblInfo.Text = "服务器连接失败,请稍后再试";
Thread.Sleep(10000);
this.lblInfo.Text = "";
}

 

这段代码里的this.lblInfo.InvokeRequired是否必须,不是说this.Invoke什么情况下都能用吗?

另外这段代码是想要实现一个文本显示10s然后消失的效果,代码有没有改进的空间,对于线程操作界面这块刚接触请指点

噜噜哒
浏览 357回答 1
1回答

交互式爱情

不是必须,但是Invoke的效率比直接调用低,所以就事先判断一下了,这是推荐标准而已 如果你这个线程只管10s后消失的话这样很好了,其实我觉得可以开个Timer啊,10秒一次触发,第一次触发就顺便把Timer给Stop就好了嘛,这样的话线程什么的就不用考虑了
随时随地看视频慕课网APP
我要回答