Здравствуйте, sidorov18, Вы писали:
S>S> LONG CreateUniqueID()
S> {
S> static LONG id = 0;
S> return id++;
S> }
S>
S>Обеспечит ли такой метод уникальность id в многопоточном приложении?
нет
S>т.е. может ли при двух вызовах CreateUniqueID вернуться одинаковый id
S>или нужно делать нечто подобное:
S>S> LONG CreateUniqueID()
S> {
S> static volatile LONG id = 0;
S> return InterlockedIncrement( &id );
S> }
S>
нужно. И заодно нужно убедиться, что инициализация id нулем происходит "до всего", чтоб не было никаких обнуляющих действий в рантайме (по идее, она должна лежать в памяти, которая забита нулями сразу при старте приложения).