public CachedFileBufferManager(long maxSize, DelegateErrorMessage errorMessage) { _MaxMemorySize = (long)maxSize * 1024 * 1024; _BufferList = new LinkedList <Buffer>(); _AvaliableRam = 2 * 1024 * 1024; ErrorMessage = errorMessage; _LoadRamCounterThread = new System.Threading.Thread(delegate() { try { PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes"); lock (this) { _RamCounter = ramCounter; _AvaliableRam = _RamCounter.NextValue(); } } catch (Exception e) { if (ErrorMessage != null) { ErrorMessage("Init PerformanceCounter fail in CachedFileBufferManager", e); } } }); _LoadRamCounterThread.IsBackground = true; _LoadRamCounterThread.Start(); }
static public void Init(int memorySize, DelegateErrorMessage errorMessage) { CachedFileBufMgr = new CachedFileBufferManager(memorySize, errorMessage); }