【问题标题】:VB.net Is possibile ti use a THREAD to speed up a query?VB.net 是否可以使用 THREAD 来加速查询?
【发布时间】:2023-01-28 17:05:45
【问题描述】:

我有一个带有 6 个文本框的表单。每个文本框都是从查询中填充的。这花了很长时间来显示表格。

使用 THREAD 来加速运行是个好主意吗?

【问题讨论】:

  • 什么操作?一切都已经在一个线程上运行。你在引用多线程吗?此外,6 个文本框,除非您在后端做一些非常奇怪或繁重的事情,否则应该能够在单个线程中毫无问题地进行管理。请考虑编辑您的帖子以添加其他上下文和信息。
  • “查询”是指数据库查询吗?如果是这样,数据库查询需要很长时间的原因是什么?
  • 需要更多信息。这个查询到底有多复杂?另外,至少在我看来,一个常见的误解是线程(像这样的小规模)会加快速度。线程允许事情并行发生,所以你的问题听起来充其量你会有一个查询线程,这意味着你的 UI 可以保持对用户的响应(也许显示动画?)。除非您可以将此查询溢出到多个线程,否则实际上没有速度优势
  • 这实际上取决于查询以及正在查询的内容。如果数据源不是为处理多个并发请求而设计的,那么使用多线程不会给你带来任何好处!提供更多细节...
  • 您是在运行 6 个查询(每个查询一个)还是每个查询都需要时间?无论哪种方式,我怀疑您的数据源需要微调。关于多线程,你可以把它们都包在一个异步任务中,这样就避免了使用表单的主线程。

标签: vb.net


【解决方案1】:

更多代码?这里是.... 正如我在上面指定的那样,我将 Access 用作数据库,并且查询是以这种方式构建的: `DBConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & "数据源=" & Para1 & "F5C DRAGG_be.mdb;" 尝试 DBConn.Open() Catch ex As 异常 MsgBox(例如消息) MsgBox(ex.ToString) 结束尝试 RecuperoNPG("Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & Para1 & "F5C DRAGG_be.mdb;")'

查询物理上是的子:

'公共函数 RecuperoNPG(ByVal connString As String) As Integer 将 NPG 调暗为 Int32 = 0 Dim sql As String = "SELECT Count(RegProduzione.MATRICOLA) AS C_MATRICOLA FROM RegProduzione WHERE Regproduzione.Data = #"&T_Data_Conv.Text&“#” 使用 Conn 作为新的 OleDb.OleDbConnection(connString) Dim Cmd 作为新的 OleDb.OleDbCommand(sql, Conn) 尝试 康恩.Open() NPG = Convert.ToInt32(Cmd.ExecuteScalar()) T_MotGiorno.Text = NPG Catch ex As 异常 Console.WriteLine(ex.Message) 结束尝试 结束使用 返回 NPG 结束功能`

如您所见,查询只是“SELECT”查询.....

【讨论】:

  • “更多代码?在这里……正如我上面指定的,我使用 Access 作为 DB” ==> 原作者:Livio |这篇文章:Makino ==> 您是否有多个帐户,但您忘记了登录的是哪个帐户,或者您是否在错误的主题中发帖,或两者兼而有之?无论如何,将您的代码格式化为代码,以便人们可以阅读它。
  • 除了 Idle_Mind 的评论之外,您还需要将该信息编辑到您的问题中,而不是将其添加为“答案”。
  • 对不起!我会记住你的建议。
猜你喜欢
  • 2012-03-07
  • 2017-08-26
  • 1970-01-01
  • 2012-02-22
  • 2014-04-02
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 2014-01-07
相关资源
最近更新 更多