fix bug; add InterlockedExchangeAdd;