我正在使用ASP.NET的Web應用程序。我有一個名爲「Sistema」的類使用Singleton模式。ArrayList變爲空
創建Sistema實例時,打開數據庫連接並運行一個進程,將一些靜態信息加載到多個ArrayList中供以後使用。
private ArrayList list1;
private ArrayList list2;
private static Sistema instance;
private Sistema()
{
OpenDataBase();
list1 = LoadStaticInformationFromDataBase();
list2 = LoadOtherStaticInformationFromDataBase();
}
public static Sistema GetInstance()
{
if (instance == null)
{
instance = new Sistema();
}
return instance;
}
在整個一天中,新的對象被添加到每個ArrayList。 在過去的幾天裏,發生了這樣的事情:這些ArrayList中有一個突然變爲null,結果整個站點停止工作。
我一直無法確定爲什麼這會變爲空。
難道ArrayList達到最大值?例如,現在它有超過150.000個對象。
在Global.asax文件中,在Application_Error方法中,我添加了一段存儲在txt文件中的代碼作爲每個錯誤的日誌。但是,那個時候沒有錯誤。
爲什麼會發生這種情況的任何建議?
這是你的實際執行?因爲它不是線程安全的,並且會解釋你的問題。我建議閱讀Jon Skeet的這個頁面:http://csharpindepth.com/Articles/General/Singleton.aspx –
請參閱[本MSDN頁面]上的多線程Singleton部分(http://msdn.microsoft.com/en- us/library/ff650316.aspx) –
@SimonWhitehead嗨西蒙。感謝您及時的回覆。我編輯了我的問題。在構造函數中,加載了多個ArrayList。但是,在某些時候,只有其中一個是空的,所以我想這不是線程的問題。 – Gonzalo