public delegate void SetTextHandler(int result);
private void SetCalResult(int result)
{
if (label2.InvokeRequired == true)
{
SetTextHandler set = new SetTextHandler(SetCalResult);//委托的方法参数应和SetCalResult一致
label2.Invoke(set, new object[] { result }); //此方法第二参数用于传入方法,代替形参result
}
else
{
label2.Text = result.ToString();
}
}
在需要的地方调用SetCalResult(i);即可
本文介绍了一种在C#中实现跨线程更新UI的方法。通过定义一个委托SetTextHandler,并在需要更新UI时检查label2是否需要跨线程调用。如果需要,则创建委托并通过Invoke方法传递参数;否则直接更新Label的Text属性。
163

被折叠的 条评论
为什么被折叠?



