我首先在主线程中创建了一个子线程_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();
}