NSThread a selector with multiple arguments

One of the curious absences in the Mac SDK is the ability to invoke a thread that targets a method with multiple arguments.

If you want to use [+ NSThread detachNewThreadSelector:toTarget:withObject:] you either have to refactor your function to a) take a collection like an NSArray or NSDictionary or b) call an intermediary function which then makes the call on that thread. You would half-expect a method like [+ NSThread detachNewThreadSelector:toTarget:withObjects:] to exist.

In order to get round this, I created the SEThreadInvocation object which blends a NSThread and a NSInvocation together.

You can then call your method like so: