gpt4 book ai didi

c# - 自动完成 : Asynchronous population with WCF using threads

转载 作者:行者123 更新时间:2023-11-30 17:54:38 26 4
gpt4 key购买 nike

我有一个“自动完成”文本框,每次按下一个键都会调用一个 WCF 方法。反过来,WCF 服务器将运行 SQL 查询,返回前 15 个结果并发送它们。但是,这会导致在框中键入时出现明显的延迟。

我要做的是:

  • 在触发 text_changed 事件时创建一个新线程,使用 Stopwatch.ElapsedMilliseconds 让该线程等待 1000 毫秒。在此等待时间内,线程可以永久停止。
  • 如果未停止,线程将向服务器发送请求(并重新填充自动完成框)。
  • 一旦触发新的“text_changed”事件,我将停止当前线程并启动一个新线程。

是否有更好的方法或者这是可行的方法?

最佳答案

所以在请求结果之前基本上等待 1 秒让用户停止输入。

这是节省服务器资源的一个很好的解决方案,但您实际上是在让用户至少等待 1000 毫秒,从而增加了延迟。

我的猜测是您最初的问题是这是一个 winforms 应用程序并且您发出的请求默认是同步的。因此,当应用程序等待响应时,文本框不接受用户输入。仅使调用异步应该可以解决该问题,而不会减慢输入速度。

关于c# - 自动完成 : Asynchronous population with WCF using threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15907963/

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