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