gpt4 book ai didi

c# - ThreadPool 适合这种线程场景吗?

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

我有一个场景,我试图通过在可能的情况下在用户实际需要之前预取结果的一些子元素来转变为响应速度更快的 UI。我不清楚如何最好地处理线程,所以我希望有人可以提供一些建议。

场景

有一个搜索表单(.NET 富客户端)使用户能够为给定客户选择一个帐户。用户搜索给定文本以查找客户集合,然后将其显示在结果网格中。然后,当用户选择一个客户时,该客户的帐户列表将被搜索并显示在第二个网格中以供用户选择,以构成要打开的最终上下文(即帐户)。

现有系统

我让这一切都以请求/响应的方式运行,使用常规的后台线程来分别解析客户和客户的帐户,以直接响应用户的选择。在找到帐户之前,用户界面会被锁定/禁用(但会响应)。

目标

我想要实现的是在用户选择客户之前开始获取前 N 个客户的帐户...其中 N 是网格中显示的项目数。

当用户滚动网格时,新显示的项目将被添加到要获取的“队列”中。

问题

  1. 线程池是管理线程的适当机制吗?如果是这样,您是否可以强制仅将一个排队的工作项的优先级提高? - 例如如果用户在开始/完成提取之前选择了该客户。
  2. 如果没有,我还应该做什么?
  3. 无论哪种方式,您是否知道展示此功能的任何优秀博客文章和/或开源项目?

最佳答案

是的,线程池是一个不错的选择,可能在 Backgroundworker 或 .NET4 的 TaskParallel 库之后。

但是您不能(不应该)“碰撞”ThreadPool 线程,但我认为这无论如何都不会有用。

您可能应该做的是使用线程安全队列(前 N 个项目)并使用 2+ 个线程来处理队列。当一个项目被选中但还没有被处理时,你将它向上移动或立即启动一个单独的线程。

关于c# - ThreadPool 适合这种线程场景吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967734/

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