I ran across a scenario where I needed to call dynamically created Action’s in a threaded manner, and was surprised at how simple the code was to do it:

public static void QueueAction(Action action)
    System.Threading.WaitCallback callback = state => action();


Which can then be called in a variety of ways:

Action action = delegate() { System.Threading.Thread.Sleep(1000); };
QueueThread(() => System.Threading.Thread.Sleep(1000));


I won’t make the claim that this is “production worthy” code, but if you’re looking for a quick way to execute an Action on a new thread, it does a pretty fine job.  One thing to note: I used the ThreadPool in this example as it’s typically safer than firing up new Threads from the Thread object, but feel free to improvise.

- Colin