我有一个Log
类,它将日志记录到Windows日志和SQL表中。为了优化我的代码,我想只使用一个SqlConnection
。
在MSDN中,它说:任何此类型的public static
(Visual Basic中的Shared
)成员都是线程安全的。任何实例成员不能保证是线程安全的。
我的问题是:
private static readonly SqlConnection conn = new SqlConnection(ConfigParameters.Instance.UIDConnection);
它是线程安全的吗?如果是,什么时候使用Open()
和Close()
?
如果不是,如何正确使用SqlConnection
?
这是我的完整类代码:
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;
}