かんじのC#めも@Wiki
ロックで同時アクセス回避
最終更新:
匿名ユーザー
-
view
複数スレッドで、変数等に同時アクセスすると困る場合、
ロックオブジェクトを生成して、回避する方法がある。
まず、ロック用のオブジェクトを生成
ロックオブジェクトを生成して、回避する方法がある。
まず、ロック用のオブジェクトを生成
private Object LockObj = new Object();
同時アクセスを回避したいところで、
private void Hogehoge() { Lock(LockObj) { // 同時アクセスしたくない処理 } }
Lockのカッコ内は1つのスレッドしか入って来れず、
同時にアクセスしたとしても、先着順で待たされる。
先に入ったスレッドが、カッコから抜けたら、
次のスレッドが処理を行う。
ちなみにこの方法は結構重いので、使いどころはよく考慮する。
同時にアクセスしたとしても、先着順で待たされる。
先に入ったスレッドが、カッコから抜けたら、
次のスレッドが処理を行う。
ちなみにこの方法は結構重いので、使いどころはよく考慮する。