3月
04
2011

排他ロックは何でやるの?

System.Threading.Monitorってのでやるみたい。

var syncObject = new object();
Monitor.Enter(syncObject);
//
// クリティカルセクションになる。
//
Monitor.Exit(syncObject);


これでCCriticalSection::Lock()、CCriticalSection::Unlock()みたいな使い方ができると。
C#的な使い方だと、tryの前でEnterしてfinallyでExitとかなんですかね?

と、思ったらもっと便利なのがあった。

var syncObject = new object();
lock(syncObject){
//
// クリティカルセクション
//
}

これでいいらしい。こっちのほうがすっきりするかな。


Written by CSharp in: マルチスレッド | タグ: , , , ,

コメントはまだありません »

RSS feed for comments on this post. TrackBack URL


Leave a Reply

Powered by WordPress | Aeros Theme | TheBuckmaker.com