Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
    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);
        }
    }