C28112
Ostrzeżenie C28112: zmienna, która jest dostępna za pośrednictwem funkcji Interlocked musi być zawsze dostępna za pośrednictwem funkcji Interlocked
Zobacz linię number: nie zawsze bezpieczne jest uzyskiwanie dostępu do zmiennej, która jest dostępna za pośrednictwem rodziny funkcji Interlocked*, w inny sposób.
Do zmiennej, do której dostęp uzyskiwany jest przy użyciu głównych procedur obsługi Interlocked, takich jak InterlockedCompareExchangeAcquire, jest później uzyskiwany dostęp przy użyciu innej metody. Chociaż do niektórych zwykłych przydziałów, dostępów i porównań do zmiennych, które są używane przez procedury Interlocked*, można bezpiecznie uzyskiwać dostęp, poprzez użycie innej metody, ryzyko jest wystarczająco duże aby uzasadnić badanie każdego wystąpienia.
Przykład
Poniższy kod przykładowy generuje to ostrzeżenie:
inter_var --;
...
InterlockedIncrement(&inter_var);
Poniższy kod przykładowy pozwala uniknąć tego ostrzeżenia:
InterlockedDecrement(&inter_var);
...
InterlockedIncrement(&inter_var);