gpt4 book ai didi

c# - 清理散落着 InvokeRequired 的代码

转载 作者:IT王子 更新时间:2023-10-29 03:53:08 24 4
gpt4 key购买 nike

<分区>

我知道,当从任何非 UI 线程操作 UI 控件时,您必须编码对 UI 线程的调用以避免出现问题。普遍的共识是您应该使用测试 InvokeRequired,如果为真,则使用 .Invoke 执行编码(marshal)处理。

这导致了很多看起来像这样的代码:

private void UpdateSummary(string text)
{
if (this.InvokeRequired)
{
this.Invoke(new Action(() => UpdateSummary(text)));
}
else
{
summary.Text = text;
}
}

我的问题是:我可以省略 InvokeRequired 测试而只调用 Invoke,就像这样:

private void UpdateSummary(string text)
{
this.Invoke(new Action(() => summary.Text = text));
}

这样做有问题吗?如果是这样,是否有更好的方法来保留 InvokeRequired 测试,而不必到处复制和粘贴此模式?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com