Ich habe auf Google nach meinem Problem gesucht, aber ich habe keine Lösung gefunden.SqlConnection Thread-Safe?
Ich habe eine Log-Klasse, die Protokolle in Windows-Journal und in einer SQL-Tabelle legte. Um meinen Code zu optimieren, möchte ich nur eine SqlConnection verwenden.
In MSDN hieß es: Alle öffentlichen statischen (Shared in Visual Basic) Mitglieder dieses Typs sind threadsicher. Es ist nicht garantiert, dass alle Instanzmitglieder Thread-sicher sind.
Meine Frage ist:
private static readonly SqlConnection conn = new SqlConnection(ConfigParameters.Instance.UIDConnection);
ist es Thread-sicher? Wenn ja, wenn Sie Open() und Close() verwenden?
Wenn nein, wie richtig SqlConnection verwenden?
Hier ist mein voller Klassencode:
private static readonly SqlConnection conn = new SqlConnection(ConfigParameters.Instance.UIDConnection);
public static long WriteLog(string sSource, string sMessage, int iErrorCode, EventLogEntryType xErrorType)
{
// Windows Logs
if (ConfigParameters.Instance.WindowsLog)
EventLog.WriteEntry(sSource, sMessage, xErrorType, iErrorCode);
// SQL Logs
// TODO
return 0;
}
Vielen Dank im Voraus :)
ich dies gefunden: http: // www. codeproject.com/Articles/62249/Connection-Pooling-in-multithreaded-applications Kann es eine Lösung sein? – BaptX
Warum möchten Sie nur eine Verbindung verwenden? Das erhöht den Overhead, um Threading-Probleme zu vermeiden. ADO.NET verfügt bereits über ein integriertes Verbindungspooling, und Sie können den Zeitaufwand für die Verwendung einer Verbindung minimieren, indem Sie sie in eine 'using'-Anweisung einfügen. – Tim
Dies hat auch nichts mit WCF zu tun, daher können Sie dieses Tag entfernen. – Tim