title: Threadsafe foreach enumeration of lists
body: <p>I need to enumerate though generic IList&lt;> of objects. The contents of the list may change, as in being added or removed by other threads, and this will kill my enumeration with a "Collection was modified; enumeration operation may not execute."</p>
  
  <p>What is a good way of doing threadsafe foreach on a IList&lt;>? prefferably without cloning the entire list. It is not possible to clone the actual objects referenced by the list.</p>