Correctly cancel async operation and fire it again
问题 How to handle case, where user might hit the button, which invokes long running async operation, multiple time. My idea was first check if the async operation is running, cancel it and fire it again. So far I have tried to build this kind of functionality using CancellationTokenSource, but it is not working as expected. Some times there is two async operations running, so the "old" async oprations is not cancelled yet when I start new one and this mixes up the resul handling. Any suggestions