Thanks for the info. It helps knowing that async threads are involved.
For our purposes this solution doesn't fit since a number of other tasks are performed between the two loads and these shouldn't wait for the first PDF to load before continuing. Changing this solution to a Task based or event based solution with awaits or queues unfortunately over complicates things as well and it's much better for us to rather completely ignore the placeholder altogether or simply overlay a static placeholder within a panel or separate placeholder viewer - maintainability vs complexity in this case.
Can I please request an additional override either to UnloadDocument or LoadDocument or a separate method for canceling a load? So if this additional parameter is passed or this method is called it will cancel the async load. Understandably if the async load is passed the point of no return there's not much choice.
Alternatively can I please request that when subsequent LoadDocument calls are made that if the previous load can be stopped it will be, if it cannot then the subsequent load will wait for the first load to complete and then replace it?
These solutions would work best for us and I can think of a lot of scenarios where people would be navigating through lists of documents and some previews may still be loading when a different document is already selected.