Send message with SignalR to client(s) from injected (IoC) method
Currently, your setup doesn't allow for any cancellation or error handling. The latter is an implementation detail, so I guess you've handled that in the actual code. I would consider the following:


Return the started task out of Start
Will you ever need to provide a result from the started task? If so, provide an overload for Func&lt;double,T&gt;
Provide cancellation support via a cancellation token (if business logic dictates this is acceptable)
Provide a Stop method that also that can stop the task created by Start