gpt4 book ai didi

c# - 改进任务代码以实现异步等待

转载 作者:行者123 更新时间:2023-12-03 13:21:20 25 4
gpt4 key购买 nike

我正在创建一个任务,然后分配一个线程,等待任务完成,然后修改UI。

 string txt = txtHelloMessage.Text;
HelloTask = Task<string>.Factory.StartNew(
() =>
{
string msg = client.SayHello(txt);
return msg;
}
);
new Thread(
() =>
{
while (true)// waiting for completion, I think that this is wrong
{
if (HelloTask.IsCompleted)
{
this.Dispatcher.Invoke((Action)delegate() { txtHelloMessage.Text = HelloTask.Result; });
break;

}
}

}
).Start();

这是好习惯吗?

最佳答案

不,这不是一个好习惯。

您正在使用非常重且昂贵的线程来处理轻量级(廉价)任务的结果。

在这种情况下,您可以只让Task自己执行Invoke()或使用延续。

但是代码看起来非常人为,可能发布的内容与您的实际问题更接近。

关于c# - 改进任务代码以实现异步等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8956403/

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