线程问题,分不够再加
这是我第一次开帖子,各位好,小弟有礼了。
我做了一个监视程序,是对某一网络内所有网络设备进行监视,其中检测状态时用PING,不断对所有设备PING,所以开了线程来PING,但是出现:”0x74b67d0"指令引用的“0xddddddd"内存,该内存不能为"read",我想这样:当一个IP送来需要PING时要等待上一个线程结束才能开这个线程,该怎么做。请各位帮帮忙,能给出代码吗?多给分,不够继续加,
BOOL CNetPing::Ping(CPingModal &DeviceSrc,CPingModal & DeviceTarget)
{
//UpdateData(true);
……
if(m_hEventStartPing!=NULL)
{ WaitForSingleObject(m_hEventKillPing ,INFINITE);
}
………………
AfxBeginThread(PingThread,this);
}
SetEvent(m_hEventStartPing);
return -1;
}
BOOL CNetPing::Initialize()
{
.m_hEventStartPing = CreateEvent(NULL, FALSE, FALSE, NULL);
m_hEventKillPing = CreateEvent(NULL, TRUE, FALSE, NULL);
return TRUE;
}
UINT CNetPing::PingThread(LPVOID pParam)
{
……………………
SetEvent(m_hEvenPingtKilled);
return 1;
}
m_hEventKillPing ,m_hEventStartPing都已经在构造中初始化,
我的E-MAIL:sea_soft@163.com