public static AKRESULT UnloadBank(string name) { m_Mutex.WaitOne(); BankHandle handle = null; if (m_AyncloadingBanks.Count > 0) { foreach (var lAyncloadingBank in m_AyncloadingBanks) { if (lAyncloadingBank.bankName == name) { handle = lAyncloadingBank; handle.UnloadBank(); break; } } if (handle != null) { m_AyncloadingBanks.Remove(handle as AsyncBankHandle); return(AKRESULT.AK_Success); } } if (m_BankHandles.TryGetValue(name, out handle)) { m_BankHandles.Remove(name); m_Mutex.ReleaseMutex(); return(handle.UnloadBank()); //handle.DecRef(); //if (handle.RefCount == 0) // m_BankHandles.Remove(name); } else { m_Mutex.ReleaseMutex(); return(AKRESULT.AK_BankNotLoadYet); } }
public static AKRESULT UnloadBankRes(string name) { m_Mutex.WaitOne(); BankHandle handle = null; if (m_BankHandles.TryGetValue(name, out handle)) { m_BankHandles.Remove(name); m_Mutex.ReleaseMutex(); return(handle.UnloadBank()); //handle.DecRef(); //if (handle.RefCount == 0) // m_BankHandles.Remove(name); } else { m_Mutex.ReleaseMutex(); return(AKRESULT.AK_BankNotLoadYet); } }