亚洲成人国产,日韩免费一二三区,亚洲一区在线免费视频,精品视频在线免费,成人性生交大片免费看9999,#NAME?,91香蕉视频在线

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

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

2009-06-04 00:00:00   作者:   來(lái)源:   評(píng)論:0 點(diǎn)擊:


2009/06/04

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


FindCallByID(m_OriginalCallID);

class CThreadManager
{
private:
TBucketList *m_pThreadList; //線(xiàn)程列表哈希表
TCriticalSection *m_pListLocker; //線(xiàn)程鎖

public:
CThreadManager();
~CThreadManager();

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


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

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


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

//從線(xiàn)程列表中刪除
void CThreadManager::RemoveThreadByThreadID(int ThreadID)
{
//多線(xiàn)程訪(fǎng)問(wèn)列表,需要加鎖
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ù)線(xiàn)程ID查找線(xiàn)程
TThread * CThreadManager::FindThreadByThreadID(int ThreadID)
{
TThread *pRetThd = NULL;

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

CTI論壇報(bào)道

相關(guān)閱讀:

分享到: 收藏

專(zhuān)題