LboxThread

  コンストラクタ



  
// *********************************************************
// デフォルトコンストラクタ
// *********************************************************
LboxThread::LboxThread()
{
	this->hThread = NULL;
}

// *********************************************************
// デストラクタ
// *********************************************************
LboxThread::~LboxThread()
{
	if ( this->hThread != NULL ) {
		LboxThread::Close();
	}
}
  



  Create



  
// *********************************************************
// スレッドの作成
// 戻り値 : true 成功, false 失敗
// *********************************************************
BOOL LboxThread::Create( HWND hWnd, LPTHREAD_START_ROUTINE lpAddress )
{
	if ( this->hThread != NULL ) {
		return false;
	}

	this->hThread = CreateThread(
		NULL,
		0,
		lpAddress,
		(LPVOID)hWnd,
		0,
		&(this->ThreadID)
	);

	if ( this->hThread == NULL ) {
		return false;
	}

	return true;
}
  



  Close

一回の呼び出しで正常終了するとは限りません。

  
// *********************************************************
// スレッドの終了を待ってハンドルを閉じる
// 戻り値 : 無し
// *********************************************************
BOOL LboxThread::Close( void )
{
	int i;
	DWORD dwRet;

	for( i = 0; i < 10; i++ ) {
		if ( GetExitCodeThread(this->hThread, &dwRet ) ) {
			if ( dwRet != STILL_ACTIVE ) {
				CloseHandle( this->hThread );
				this->hThread = NULL;
				return true;
			}
		}
		Sleep(100);
	}

	return false;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ