Saturday, May 15, 2010

Eliminating delegates in threading

Just a quick note on threading. One way to start a new thread with parameters was the following:

Thread processingThread = new Thread(new ThreadStart(delegate { someClass.SomeMethod(); }));


One can do the same thing with a lambda expression which in my opinion is a bit cleaner. Why? I don't know - personal preference - I seem to remember lambda syntax more often : )

Thread workerThread = new Thread(
()=> someClass.SomeMethod()(employeeId)

Or doing this inline with the start right away:

(new Thread(() =>


That's all there is to it. Remember in Win32 API when creating threads, and security descriptors, etc? Its so nice and easy in the managed world.

No comments:

Post a Comment