Asking this question with C# tag, but if it is possible, it should be possible in any language. 

Is it possible to implement a doubly linked list using Interlocked operations to provide no-wait locking? I would want to insert, add and remove, and clear without waiting.
['https://Stackoverflow.com/questions/849786', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/92692/']
A simple google search will reveal many lock-free doubly linked list papers.

However, they are based on atomic CAS (compare and swap).

I don't know how atomic the operations in C# are, but according to this website

<http://www.albahari.com/threading/part4.aspx>

C# operations are only guaranteed to be atomic for reading and writing a 32bit field. No mention of CAS.
FWIW, .NET 4.0 is adding a ConcurrentLinkedList, a threadsafe doubly linked list in the System.Collections.Concurrent namespace. You can read the [documentation](http://msdn.microsoft.com/en-us/library/dd381935(VS.100).aspx) or the [blog post](http://blogs.msdn.com/pfxteam/archive/2009/03/04/9457880.aspx) describing it.