Have you tried passing self as the first argument? I know that seems strange since it's automatic, but passing a method into a thread could disassociated the method and self. If that fixes it, the problem would be that it's applying the arguments to each parameter and coming up one short.
Edit: On a related note, you should probably refactor so you aren't passing a method. I imagine that's a thread safety issue.
Edit: On a related note, you should probably refactor so you aren't passing a method. I imagine that's a thread safety issue.