0

我正在编写一个与 Windows Phone 和 Metro 共享的共享应用程序。我需要从 Metro App 中 XAML 代码背后的 Worker 线程调用我的 UI 线程。是的,我知道我可以通过使用 async 和 await 来完成它。但我不能使用它,因为其他平台(Android 和手机)不支持这个东西。

在 Windows Phone 中,我知道这可以使用 Deployment.Dispatcher.Current.BeginInvoke() 来完成。但我不知道它是如何在 Metro App 中完成的

另外,我是 C# 和 App 开发的新手。因此,如果您能详细介绍它,将会很有帮助。

4

1 回答 1

0

在不久的将来,我希望我们能够async在 Android/WP/Windows Store 的便携式类库上使用。async如果您将后台操作视为 UI 的“服务”,而不是将 UI 视为后台操作的“服务”,则效果最佳。因此,如果您通过将大型后台操作分解为较小的块并让 UI 端驱动它们并在每个块之间进行更新来重构代码,您的代码将会更好地工作。当您的代码以这种方式构建时,您的后台操作将永远不需要编组到 UI。

如果你只是想用更少的工作让一些东西现在工作,你可以使用SynchronizationContext. 当您的后台操作开始时,捕获SynchronizationContext.Current并稍后使用SendPost方法从您的后台操作运行 UI 更新。这导致设计更加混乱,但它今天可以在 Android/WP/Windows 商店中使用。

于 2013-06-27T12:03:22.247 回答