Public Module ItemCache Private cacheTable As Hashtable = New Hashtable Public Function GetItem(ByVal filename As String) As Item SyncLock GetType(ItemCache) If cacheTable.ContainsKey(filename.ToLower()) Then Return CType(cacheTable(filename.ToLower()), Item) End If Dim item As Item = New Item(filename) cacheTable.Add(filename.ToLower(), item) Return item End SyncLock End Function End Module