C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 30 を表示中)
■14643 / )  Re[3]: マルチスレッドで lock がうまくかかりません。
□投稿者/ 囚人 (286回)-(2008/02/24(Sun) 15:49:05)
C# の lock ステートメントはクリティカルセクションです。

たぶん、
lock(g)
とやったときに、g 自身がロックされると勘違いされているのではないでしょうか?


class Clazz{
	private static object syncobj = new object();

	public void Func1(){
		lock(syncobj){
			// コード1
		}
	}

	public void Func2(){
		lock(syncobj){
			// コード2
		}
	}
}

lock は上記のようにやれば、「コード1」を実行中に「コード2」が実行される事はありません、という使い方です。
当然ですけど、まったく同じオブジェクトをロックしなければなりませんよ。

返信 編集キー/


管理者用

- Child Tree -