08/02/21 09:33:38
>>630
使い方・・・ねぇ
例えば LONG 変数があったとして、
LONG x;
この値を普通に操作すると、スレッド間で競合が起きるだろ?
BOOL Lock() {
if (x == 0) { x = 1; return true; }
else { return false; }
}
void Unlock() {
x = 0;
}
InterlockedExchangeを使えば、そういった問題は起きない
BOOL Lock() {
if (InterlockedExchange(&x, 1) == 0) { return true; }
else { return false; }
}
void Unlock() {
InterlockedExchange(&x, 0);
}
こんな例でわかるかなぁ・・・