Кто должен показывать курсор-часики на время длительных операций?
Логика? Вроде бы нет, потому что в конце концов может она сейчас без UI крутится или UI не блокирует.
UI? Вроде бы тоже нет, потому что откуда ему знать, какие операции логики потребуют часиков.
Когда-то велоспидил такое:
в логике:
using (LongProcess.New())
{
...
}
А уже этот LongProcess в зависимости от того, в UI потоке или нет, менял или нет курсор.
Можно и дальше пойти, позволить UI подсунуть свою реализацию.
Совсем велосипед? Годное решение для промышленного кода?