亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩,日本久久久久,日本-区二区三区免费精品,中文字幕日本亚洲欧美不卡

 首頁 > 技術(shù) > 技術(shù)文摘 > 使用C++Builder快速實現(xiàn)自己的專用IVR

使用C++Builder快速實現(xiàn)自己的專用IVR

2009-06-04 00:00:00   作者:   來源:   評論:0 點擊:


2009/06/04

1.涉及的組件
  使用C++Builder開發(fā)固定流程的IVR。
  來話后放音,循環(huán)放音完成后掛機。
////////////////////////////////////////////////////////////


FindCallByID(m_OriginalCallID);

class CThreadManager
{
private:
TBucketList *m_pThreadList; //線程列表哈希表
TCriticalSection *m_pListLocker; //線程鎖

public:
CThreadManager();
~CThreadManager();

//將線程加入線程表
void AddThread(TThread *pThd);
//根據(jù)線程ID從線程中移除
void RemoveThreadByThreadID(int ThreadID);
//根據(jù)線程ID查找線程對象
TThread *FindThreadByThreadID(int ThreadID);
};


//線程管理器構(gòu)造
CThreadManager::CThreadManager()
{
m_pThreadList = new TBucketList(bl16);
m_pListLocker = new TCriticalSection();
}

//線程管理器析構(gòu)
CThreadManager::~CThreadManager()
{
delete m_pThreadList;
delete m_pListLocker;
}


//加入線程列表
void CThreadManager::AddThread(TThread *pThd)
{
//多線程訪問列表,需要加鎖
m_pListLocker->Acquire();
try
{
m_pThreadList->Add((void*)(pThd->ThreadID), pThd);
}
catch(...)
{
}
m_pListLocker->Release();
}

//從線程列表中刪除
void CThreadManager::RemoveThreadByThreadID(int ThreadID)
{
//多線程訪問列表,需要加鎖
m_pListLocker->Acquire();
try
{
TThread *pThd = NULL;
if (m_pThreadList->Find((void*)ThreadID, (void*)pThd))
{
m_pThreadList->Remove((void*)ThreadID);
}
}
catch(...)
{
}
m_pListLocker->Release();
}

//根據(jù)線程ID查找線程
TThread * CThreadManager::FindThreadByThreadID(int ThreadID)
{
TThread *pRetThd = NULL;

//多線程訪問列表,需要加鎖
m_pListLocker->Acquire();
try
{
TThread *pThd = NULL;
if (m_pThreadList->Find((void*)ThreadID, (void*)pThd))
{
pRetThd = pThd;
}
}
catch(...)
{
}
m_pListLocker->Release();
return pRetThd;
}

CTI論壇報道

相關(guān)閱讀:

分享到: 收藏

專題

永新县| 平谷区| 温宿县| 泰宁县| 太康县| 古蔺县| 松原市| 沙湾县| 太保市| 安溪县| 宁德市| 阳信县| 宁阳县| 兰溪市| 荔波县| 库伦旗| 新蔡县| 茌平县| 上饶市| 蒙山县| 周宁县| 高青县| 三明市| 阿瓦提县| 云浮市| 铁岭县| 苗栗县| 惠来县| 长治市| 万荣县| 抚松县| 成安县| 黎城县| 会理县| 柘城县| 屏山县| 花莲市| 昌吉市| 克什克腾旗| 南雄市| 大姚县|