Does this work?  It doesn't look right to me.  Please write tests to ensure that it's being invoked in the right execution context (you can look at the current thread name).