MethodInvoker 与 Control.Invoke
我正在对计时器进行简单的 GUI 更新。如果我要更新单个控件,使用哪种方法更好?像这样的 MethodInvoker:
this.Invoke((MethodInvoker)delegate
{
systemMode.Text = systemMode.ToString();
});
或像这样创建一个控件调用:
public void UpdateSystemMode()
{
if (systemMode.InvokeRequired)
{
UpdateSystemMode.Invoke(new
UpdateSystemModeDelegate(UpdateSystemMode));
}
else
{
systemMode.UpdateSystemMode();
}
}
显然,方法调用器预先的代码较少,但哪一个是最佳实践?
I'm doing simple GUI updates on a timer. Which method is better to use if i am updating a single control? MethodInvoker like this:
this.Invoke((MethodInvoker)delegate
{
systemMode.Text = systemMode.ToString();
});
or create a control invoke like this:
public void UpdateSystemMode()
{
if (systemMode.InvokeRequired)
{
UpdateSystemMode.Invoke(new
UpdateSystemModeDelegate(UpdateSystemMode));
}
else
{
systemMode.UpdateSystemMode();
}
}
Obviously, the method invoker has less code up front, but which one is best practice?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
UpdateSystemMode.Invoke(new UpdateSystemModeDelegate(UpdateSystemMode));
完全相同
以及
正确的方法:
UpdateSystemMode.Invoke(new UpdateSystemModeDelegate(UpdateSystemMode));
and
is absolutely same
as well as
right way: