Это на самом деле не вопрос программирования, а скорее критика семантики, используемой разработчиками в Microsoft.Я отвечу на это аналогией.Я бы прокомментировал это, но это слишком долго.
Загрузка багажа в самолете идет медленно.Я должен сделать одну сумку за раз.Разгрузка происходит мгновенно, я нажимаю на рычаг, и все они выпадают.
Как только я начинаю загружать первый предмет багажа в самолет, я выкрикиваю: «Погрузка!»(событие «Загрузка»).
Когда я заканчиваю загружать весь багаж, я выкрикиваю «Загружен».(событие «Loaded»).
Если мне позвонят и сообщат, что рейс отменен, я нажимаю на рычаг и убираю багаж, который уже положил, и выкрикиваю «Unloaded» (событие «Unloaded»).).Независимо от того, действительно ли я закончил загружать весь багаж в первую очередь или нет, это не имеет значения.Я выгрузил его после того, как уже начал загрузку.
Итак, семантически, вы видите, как можно выгрузить то, что еще не было загружено.Представьте, что событие «Loaded» означает «полностью загружен», а событие «Loading» означает «частично загружен».Какую бы реальную проблему ни вызывало это поведение, обращайтесь к событию «Загрузка» вместо события «Загрузка».