ThreadPool.QueueUserWorkItem with Anonymous Types
I thought this blog post by Matt Valerio was good, and it gave me a few ideas to use in a current test project. He wrote a helper method to be able to use anonymous types when calling a delegate or lambda in the ThreadPool:
public delegate void WaitCallback<T>(T state); public static class ThreadPoolHelper { public static bool QueueUserWorkItem<T>(T state, WaitCallback<T> callback) { return ThreadPool.QueueUserWorkItem(s => callback((T)s), state); } }
And his example code for using this method:
ThreadPoolHelper.QueueUserWorkItem( new { Name = "Matt", Age = 26 }, (data) => { string name = data.Name; int age = data.Age; // Long-running computation });
Cute, eh?