我首先在主线程中创建了一个子线程_ExecuteThread来监视系统event log,当我从中提出消息后,就用mail送出去,由于mail送信花的时间长,所以还要在这个子线程中再创建个mail用的子线程!现在我创建后运行一小会内存错误就出现了,还有就是怎么避免mail线程争用共享资源mail service的问题!
谢谢!
void main
{
g_hEventLog = ::OpenEventLog( NULL,"Application");
m_hGlobalEvent = ::CreateEvent
(
NULL,
FALSE,
FALSE,
NULL
);
NotifyChangeEventLog(g_hEventLog,m_hGlobalEvent);
g_hExecuteThread = ::CreateThread
(
NULL,
0,
(LPTHREAD_START_ROUTINE)_ExecuteThread,
this,
0,
&dwThreadID
}void _ExecuteThread(void)
{
WaitForSingleObject(m_hGlobalEvent,INFINITE);
while(1)
{
。
。
。
::CreateThread
(
NULL,
0,
(LPTHREAD_START_ROUTINE)_MailSendThread,
NULL,
0,
&dwThreadID
}
}void _MailSendThread(void)
{
if(!smtp.OpenConnection("") )
smtp.SetFrom("[email protected]");
smtp.SetTo("[email protected]");
smtp.SetSubject("wo are friend!");
smtp.AddText(strMail);
smtp.Send();
smtp.CloseCOnnection();
}
谢谢!
void main
{
g_hEventLog = ::OpenEventLog( NULL,"Application");
m_hGlobalEvent = ::CreateEvent
(
NULL,
FALSE,
FALSE,
NULL
);
NotifyChangeEventLog(g_hEventLog,m_hGlobalEvent);
g_hExecuteThread = ::CreateThread
(
NULL,
0,
(LPTHREAD_START_ROUTINE)_ExecuteThread,
this,
0,
&dwThreadID
}void _ExecuteThread(void)
{
WaitForSingleObject(m_hGlobalEvent,INFINITE);
while(1)
{
。
。
。
::CreateThread
(
NULL,
0,
(LPTHREAD_START_ROUTINE)_MailSendThread,
NULL,
0,
&dwThreadID
}
}void _MailSendThread(void)
{
if(!smtp.OpenConnection("") )
smtp.SetFrom("[email protected]");
smtp.SetTo("[email protected]");
smtp.SetSubject("wo are friend!");
smtp.AddText(strMail);
smtp.Send();
smtp.CloseCOnnection();
}
解决方案 »
- 编程截获和解析webmail数据包的问题求教
- 急求:有谁知道 袋鼠盘 的工作原理?
- 怎么设置listview的文字背景为透明的?
- 怎样从一个已知的路径取得其PIDL项目标示符列表
- 初学者请帮助一下~~
- vc视频采集 ,保存为swf格式
- 二维导航地图的制作方法
- 问个愚蠢的问题:WIN32对象句柄(HINSTANCE)和MFC中对象指针一样吗?有什么不同,我怎么认为一样呢?
- 在VC中用ADO同时连接ORACLE和DBF数据库时我建了两个_ConnectionPtr和两个_RecordsetPtr指针,可是编译时报警:
- 256色如何转换为16位色,也就是高彩色1????1?
- 急急急!在线等!关于多线程和进度条的问题!不胜感激
- 一个关于hook createprocess的问题!
是不是一直在创建线程啊?
最好再那个函数中释放呢!