You can use Synchronization techniques like Lock, Monitor.Enter/Exit, AutoResetEvent, ManualResetEvent or you can use Concurrent collections.