我有一个标签叫Cbx_name(i) = vbNullString
。
我想动态更改其内容运行时。
下面是我的代码示例,而不是实际代码。我的for循环包含许多代码,每个循环大约需要8到9秒。因此它应该在UI上可见。
例如。
lblMsg
但是它不起作用。有人可以帮我吗?
答案 0 :(得分:0)
如果只想显示带有递增编号的标签,则可以创建一个Task,然后使用延迟(Thread.Sleep())来给UI时间刷新标签。
由于不能在单独的线程中更改UI元素,因此必须使用UI Dispatcher更新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);
}
});