Usage of Interlocked.CompareExchange for deciding whether a property has been changed by another thread
In your code, the only way to have two threads update that value simultaneously is if TimeTick gets invoked twice in a very short amount of time.  Given a sane value for your time interval, this can't happen.  And if it can, you would typically use a Monitor and quickly exit the second handler.

It seems that you are invoking this timer at a much higher rate than necessary - every 200ms - because you want to do something else that frequently, so you have code to check if you should do your 5 minute job now.  There isn't a good reason to have one callback responsible for two totally different things.  You should be able to solve this by having a 5 minute timer for the database job and a 200 ms timer for the broadcast, and these would each call their own callback function.