gpt4 book ai didi

c# - TextBlock 不会更新

转载 作者:行者123 更新时间:2023-12-03 19:15:17 30 4
gpt4 key购买 nike

我有一个名为“findListText”的文本 block 。在这里,我正在更新其中的文本:

private void InstantSearch(object sender, KeyEventArgs e)
{
if (e.Key == Key.Return)
{
HitEnter = true;
}
findListText.Text = "Processing request. Please wait...";
Find(bool.Parse("False" as string));
}

然而,下一组代码是一个搜索函数,最多可能需要 10 秒,最后,它再次更改 findListText 中的文本。

private void Find(bool? bForward = true)
{
{
//Lots and lots of code
}
findListText.Text = "Search completed."
}

问题是,文本 block 似乎永远不会更新为“正在处理请求。请稍候...”。文本 block 处于原始状态,10 秒后更新为“搜索完成。”,似乎跳过了中间人。

我正在使用 C# - WPF。我在这里做错了什么?

最佳答案

我认为什么技术并不重要。

代码在同一个线程上运行,这意味着在该线程上的所有代码完成之前,UI 不会更新。您应该解决一个不同的线程来更新该文本 block 。

在这种情况下,您将有 2 个线程:

  • 原始线程,执行“很多很多代码”
  • 第二个(额外)创建的线程,它将在另一个线程执行其他代码时处理更新文本 block 的文本。

我创建了 a little something这应该可以解决您的问题,它基于 this堆栈溢出页面

关于c# - TextBlock 不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12036600/

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