■ VisualC++(MFC限定)相談室 MFC6.dll■
■ このスレッドは過去ログ倉庫に格納されています
0178デフォルトの名無しさん
NGNGOnDestroy()にてスレッドと、その内部で使っているオブジェクト(m_obj)を破棄します。
現在は以下のようにsleepで無理矢理同期させていますが、
正しくはスレッドが完全に停止し破棄された時のイベントか何かを待つのだと思います。
WaitForSingleObjectを入れていますが全く効いてません。
現在は停止イベント後もm_objのメソッドをスレッドが呼び出してしまいアクセスバイオレーションになります。
どうしたらいいですか?
XXX::OnDestroy()
{
〜途中略〜
if(m_EventThreadStop)
{
SetEvent(m_EventThreadStop);
m_EventThreadStop = NULL;
}
if(m_pThread)
{
WaitForSingleObject(m_pThread, INFINITE);
m_pThread = NULL;
}
::Sleep(500);
if(m_obj != NULL)
{
delete m_obj;
m_obj = NULL;
}
}
■ このスレッドは過去ログ倉庫に格納されています