gpt4 book ai didi

c# - 如果我使用线程来获取大量数据,是否应该使用多个连接?

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:48 24 4
gpt4 key购买 nike

我正在使用 AS400 的 iDB2/iSeries 连接器一次获取大量数据。我正在创建一个到数据库的连接,为了提高性能,我将这个连接与多个线程(大约 10 个)一起使用。总共创建并释放了 50 个命令,并关闭了每个 DataReader。

除一件事外,一切都很好:我无法关闭该连接。我得到以下异常(第一行表示“对象引用未设置为对象的实例”):

    {"La référence d'objet n'est pas définie à une instance d'un objet."}
[System.NullReferenceException]: {"La référence d'objet n'est pas définie à une instance d'un objet."}
Data: {System.Collections.ListDictionaryInternal}
HelpLink: null
HResult: -2147467261
InnerException: null
Message: "La référence d'objet n'est pas définie à une instance d'un objet."
Source: "IBM.Data.DB2.iSeries"
StackTrace: " à IBM.Data.DB2.iSeries.iDB2Connection.Close()\r\n à WcfApp.Metier.InitApp() dans c:\\projet\\WSApp.cs:ligne 450"
TargetSite: {Void Close()}

最佳答案

  1. 使用Task代替 Thread 将使您的数据处理更加透明和清晰。
  2. 关心分享您的连接 - 使用 lock声明,如果需要的话。
  3. 阅读有关事务范围和连接池的信息 - 这是您在使用数据库连接时需要了解的内容。

关于c# - 如果我使用线程来获取大量数据,是否应该使用多个连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19949476/

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