winforms 在执行其余代码后更改标签C# [duplicate]

sycxhyv7  于 2022-11-16  发布在  C#
关注(0)|答案(1)|浏览(148)

此问题在此处已有答案

Label won't change color until after code is finished executing(1个答案)
18天前关闭。
Visual Studio C# .NET 5.0 Windows窗体应用程序
我试图在执行ping命令之前更改我的windows窗体应用程序中的标签,但它不作为intendet工作。
这是我的代码:

`//some other code
label1.Text = "Pinging specified target... Please wait.";
PingReply reply = ping.Send(target);
label1.Text = "";
//some other code`

代码应将空标签的文本更改为“正在Ping指定的目标...请稍候”,然后运行ping函数,再将标签更改回空白文本。
发生的情况是,标签只在ping函数完成后才会改变。当我删除将标签更改为空白文本的代码时,标签会说“正在ping指定的目标...请等待。”但只有在ping函数运行完成后。
为什么在执行ping函数之前编写代码时,在执行ping函数之后标签会发生变化?

j13ufse2

j13ufse21#

实际上,它会显示第一个文本,但它发生得非常快。要查看转换,您可以通过调用Thread.Sleep添加一些延迟。然而,减慢任务的速度确实很奇怪。

`//some other code
label1.Text = "Pinging specified target... Please wait.";
PingReply reply = ping.Send(target);
Thread.Sleep(2000);
label1.Text = "";
//some other code`

相关问题