gpt4 book ai didi

c# - 在 Thread.Sleep() 期间保持 UI 响应

转载 作者:太空狗 更新时间:2023-10-30 00:14:11 25 4
gpt4 key购买 nike

<分区>

背景:我正在编写一个遍历服务器列表并获取有关每台机器的各种详细信息的应用程序。在迭代过程中,我需要更新表单上的各种控件(以显示获取信息的摘要)。因为它遍历列表,所以我调用了 Thread.Sleep() 以允许用户在询问下一台机器之前有时间阅读信息。下面是我的代码:

Task TestTask = Task.Factory.StartNew(() =>
{
foreach (String IpAddress in ServersToCheck)
{
if (IpAddress != String.Empty)
{
ServerBeingCheckedLabel.Text = IpAddress;
if (PingServer(IpAddress) == true)
{
PingChar_Label.ForeColor = Color.Green;
PingChar_Label.Text = "a";
CheckPermissionsAreValid(IpAddress);
}
else
{
PingChar_Label.ForeColor = Color.Red;
PingChar_Label.Text = "r";
PermChar_Label.ForeColor = Color.Red;
PermChar_Label.Text = "r";
}
}
}
Thread.Sleep(10000);
this.BackColor = FormBackGroundColor;
TestButton.Enabled = true;
RunTimer.Enabled = true;
}, CancellationToken.None, TaskCreationOptions.None, UiScheduler);

这在更新窗体上的控件方面工作正常,但在 Thread.Sleep() 期间 UI 锁定。如果在单独的任务上调用 Thread.Sleep(),UI 线程肯定保持畅通吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com