こんな関数作ったよ。
■ このスレッドは過去ログ倉庫に格納されています
006059
NGNG// これは、単一のオブジェクトをロックする。
class AutomaticSynchronizer {
HANDLE mutex;
public:
AutomaticSynchronizer::AutomaticSynchronizer( void* resource ) {
char mutexName[100];
sprintf( mutexName, "AutomaticSynchronizer:[0x%08X]", resource );
resouces = CreateMutex( NULL, FALSE, mutexName );
WaitForSingleObject( mutex, INFINITE );
}
AutomaticSynchronizer::~AutomaticSynchornizer() {
ReleaseMutex( mutex );
}
};
// スレッドセーフ版( AutomaticSynchronizerの使用例 )
int foo2( int i ) {
AutomaticSynchronizer as( sObject ); // 自動変数として、インスタンスを作る
if( i == 0 ) {
return -1; // 普通にエラーリターン
} else if( i < 0 ) {
throw e; // 普通に例外を投げる
}
return var( i ); // 普通に委譲
}
// foo1()とfoo2()、どっちが簡単?
■ このスレッドは過去ログ倉庫に格納されています