多线程这样写
lblDateValue.Invoke(new Action(() => { lblDateValue.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fffffff"); })); 报错了。
解决办法:
public static class ControlInvoker
{
public static void Invoke(Control ctl, MethodInvoker method)
{
if (!ctl.IsHandleCreated)
return;
if (ctl.IsDisposed)
return;
if (ctl.InvokeRequired)
{
ctl.Invoke(method);
}
else
{
method();
}
}
}
ControlInvoker.Invoke(this, delegate
{
lblDateValue.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fffffff");
});
本文介绍了如何修复C#中多线程控制台输出lblDateValue.Text的问题,通过创建ControlInvoker静态类实现线程安全的文本更新。作者分享了使用ControlInvoker.Invoke方法和委托的解决方案,确保在多线程环境下正确更新UI元素。
1111

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



