用不同的参数调用相同的方法-如何使用多线程

本文关键字:何使用 方法 多线程 调用 参数 | 更新日期: 2023-09-27 17:54:28

场景如下:我有一个dll,它有方法从db获取数据,根据传递的参数,做各种检查,并给我所需的数据。

GetGOS_ForBill(AgencyCode)

在一个windows应用程序中,我有一个列表框,其中列出了500多个机构。我为每个附加到通用列表的机构检索GOS。如果用户选择了所有代理(目前为500多个),则需要大约10分钟才能从dll返回数据。

我们考虑了后台处理。但这并没有减少时间,除了用户可以在屏幕上做其他事情。考虑多线程。

有谁能帮我一下吗?什么是正确的方法,我们如何完成多线程?

用不同的参数调用相同的方法-如何使用多线程

顺便问一下,我认为你没有太多的多线程经验,多线程不是一个通过Stackoverflow问题临时想出的话题。我强烈建议不要使用多线程,如果你不知道你在做什么…不是一个问题,而是两个问题。

在您的情况下,性能问题与使用线程来获得并行工作负载无关,而是与正确构建问题有关。

现在你正在单独查询每个机构,这对几个机构来说工作得很好,但很快就会下降。查询本身可能很快,问题是你要运行那个查询500次。相反,你为什么不尝试在一个查询中获得所有机构的所有GOS(这可能会很快)并将其存储在内存中(例如字典)。然后在需要时检索相应的GOS集。

如果最常见的情况是用户只是选择其中的几个,你总是可以建立一个阈值…如果选择的数字小于30,则执行每个查询,否则运行常规查询并从内存中检索。