我有一个名为lblMsg
.
我想动态更改它的内容运行时。
下面是我的代码示例,而不是实际代码。我的 for 循环包含很多代码,每个循环大约需要 8 到 9 秒。所以它应该在 UI 上可见。
例如。
for(int i=0;i<=length;i++)
{
lblMsg.Content="Test"+i;
}
但它不起作用。任何人都可以帮助我吗?
如果您只想显示带有递增编号的标签,您可以创建一个任务,然后使用延迟 (Thread.Sleep()) 给 UI 时间来刷新标签。
因为您不能在单独的线程中更改 UI 元素,所以您必须使用 UI 调度程序更新 UI。
示例代码
var length = 1000;
Task.Run(() =>
{
for (int i = 0; i <= length; i++)
{
Application.Current.Dispatcher.BeginInvoke(new Action(() => {
lblMsg.Content = "Test" + i;
}), DispatcherPriority.Render);
Thread.Sleep(100);
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句