起线程,注意事项,生命周期

起线程,注意事项,生命周期


//收到交易弹出公告
void TradeMainUI::OnTradePoputBulletin(const string& seq)
{
//启动线程处理以下消息
char *temp = new char[128];
strcpy(temp, seq.c_str());
HANDLE hHandle = CreateThread(NULL, 0, TradePoputBulletinThread, (void*)(temp), 0, NULL);
CloseHandle(hHandle);

}
DWORD WINAPI TradeMainUI::TradePoputBulletinThread(LPVOID pVoid)
{
try
{
string seq = (char*)pVoid;
FTFutureTradeAgent* pAgent = (FTFutureTradeAgent*)((MQTradeRobot*)gPtrRobotQueen)->GetMarketTradeAgent();
TradeBulletin* pTradeBulletin = pAgent->GetTradeBulletinManager()->GetBulletinBySeq(seq);
if(pTradeBulletin != NULL)
{
TCHAR tcTitle[512] = {0};
TCHAR tcContent[1024] = {0};
EncodingHandler::MByteToWChar(pTradeBulletin->GetTitle().c_str(), tcTitle, 512);
EncodingHandler::MByteToWChar(pTradeBulletin->GetContent().c_str(), tcContent, 1024);
MessageBoxEx(NULL, tcContent, tcTitle, MB_OK | MB_TOPMOST, -1);
}
if (pVoid != NULL)
{
delete pVoid;
pVoid = NULL;
}
return 0;
}
catch(RunTimeException & rtex)
{
char cErro[1024] = {0};
sprintf(cErro,"\nTradePoputBulletinThread____%s\n",rtex.what());
OutputDebugStringA(cErro);
//g_WriteLogInfo->WriteWithTime(cErro);
if (pVoid != NULL)
{
delete pVoid;
pVoid = NULL;
}
return 0;
}
catch(...)
{}
{
//pAgent->_TradeObjIdLock.UnLock();
if (pVoid != NULL)
{
delete pVoid;
pVoid = NULL;
}
return 0;
}
}


1、
string转成LPVOID
(void*)(str.c_str());
2、
LPVOID转成string
string seq = (char*)pVoid;

string seq = (char* &)pVoid;这个的区别

3、生命周期
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值