Rx observable dump should/can be soft-cancelled?
Currently, simple .Dump() for Rx Observable cannot be soft cancelled, I believe this should/can be done with QueryCancellationToken:
So the "Done" should/can be printed when I clicked the "Cancel" button.
So the "Done" should/can be printed when I clicked the "Cancel" button.
Comments
But I just believe it is possible that I don't need to change it to QueryCancelToken
A consequence of soft cancellation is that if the query fails to end, you have to click a second time on the Cancel button to kill the process. This is OK when you've accessed QueryCancelToken in your query, because it should be clear what's going on: you've tried to implement soft cancellation, and failed to respond to the token.
What I want to avoid is a situation where you have to click twice on Cancel without knowing why. In other words, if you've never accessed QueryCancelToken, it would be confusing to have to click twice on Cancel to stop the query.
In your case, imagine that you add "Thread.Sleep(100000)" to your query, after calling o.OnCompleted. You'd end up having to click Cancel twice, and it wouldn't be obvious why.