The WinRT environment enforces non-blocking async.
Any operation in the library that can take time is async. Async is everywhere.
I've always worked on embedded UIs where we had a physical watchdog timer (an independent chip power cycles your main device if a keep alive function isn't called periodically) that was set to ~30ms.
In test, anything running longer than 30ms had to be broken up.
The entire system was written in C and C++.
The lesson is you can write responsive apps in any language, but the entire underlying stack needs to cooperate. IIRC WinRT's requirement for "async" is operations that take more than 1 second. I disagree with that, I'd set the limit at 100ms, but I guess that'd annoy programmers even more. :)
(1) People who know windows will find it hard to switch to the async model
(2) People who don't know windows will have access to a disorientingly large API
Any operation in the library that can take time is async. Async is everywhere.
I've always worked on embedded UIs where we had a physical watchdog timer (an independent chip power cycles your main device if a keep alive function isn't called periodically) that was set to ~30ms.
In test, anything running longer than 30ms had to be broken up.
The entire system was written in C and C++.
The lesson is you can write responsive apps in any language, but the entire underlying stack needs to cooperate. IIRC WinRT's requirement for "async" is operations that take more than 1 second. I disagree with that, I'd set the limit at 100ms, but I guess that'd annoy programmers even more. :)