The way you get something invoked in a workflow is by scheduling it. This includes even a callback similar to Action<T>. This is why ActivityAction<T> was created. I can create an activity that accepts as an argument a callback. Then I schedule it and
it gets invoked on the workflow thread.