Ich habe eine C# Multithread-Funktion geschrieben, die Daten von sqlserver liest und für jede Datenzeile einen separaten Thread startet.In jedem Thread habe ich Codes, die mit db arbeiten müssen. das ist, was ich in jedem Thread tun:Sql-Verbindungen in C# Multithreading verwalten
- eine neue SQL-Verbindung
- Connect, um es zu erstellen und öffnen Sie sie
- Arbeit
- Verbindung schließen Sie
Ich sollte beachten, dass ich benutze() -Befehl und ich habe gelesen, dass diese Anweisung sql-Verbindung verwaltet und schließt es automatisch nach der Ausführung des Befehls.
diese Funktion regelmäßig aufgerufen werden soll (etwa alle 1 Minute) und das ist das Problem, das ich in bekommen:
nach der ersten Rufnummer der aktiven SQL-Verbindungen erhöht sich auf Anzahl der Zeilen (Themen, die für jede Zeile erstellt). Im zweiten Anruf erhöht sich diese Nummer erneut. zum Beispiel nach 5 Aufrufen mit 100 Zeilen haben wir 500 aktive SQL-Verbindungen! aber ich habe gelesen, dass Verbindungspooling Verbindungen verwaltet und erstellte Verbindungen wieder verwendet. Was sollte ich tun, um dieses Problem zu lösen? habe ich irgendeine Aussage vermisst oder gibt es etwas zu tun, was ich vergessen habe?
Bitte geben Sie einigen Kontext zu Ihrer Frage. Was versuchst du zu erreichen? Ist das eine Lasttest-Anwendung? – Alex
Es ist ein Überwachungsdienst und ich füge Geräte ein, die auf db überwacht werden sollen, und starte einen neuen Thread für die Überwachung jedes Geräts –
Schauen Sie, ob dies für Ihren Fall relevant ist: http://stackoverflow.com/questions/268982/net -sqlconnection-nicht-geschlossen-gerade-wenn-in-einem-Verwendung – Alex