【发布时间】:2017-03-17 19:00:41
【问题描述】:
这个问题不是关于“我应该阻塞我的主线程吗”,因为阻塞主线程/STA/UI 线程通常是一个坏主意——用于消息传递和 UI 操作,但为什么 WinRT C++/cx 不允许任何与 iOS、Android 甚至 C# 相比,主线程的阻塞(await 实际上并没有阻塞)。
Android 或 iOS 阻塞主线程的方式有根本区别吗?为什么 WinRT 是唯一不允许任何形式的阻塞同步的平台?
编辑:我知道 VS2015 中的 co-await,但由于向后兼容性,我的公司仍然使用 VS2013。
【问题讨论】:
-
@RawN UI 线程或 COM 上下文中的 STA 线程。在 WinRT 中,UI 控件只能通过 UI 线程进行交互。
-
在我看来,如果你知道这是一个坏主意,真正的问题不是为什么 Windows 不允许你这样做,而是为什么 iOS 和 Android 允许这样做!
标签: multithreading windows-runtime windows-store-apps c++-cx