2013-06-27 61 views
0

我正在编写与Windows Phone和metro共享的共享应用程序。我需要在Metro App中的XAML代码后面的Worker线程中调用我的UI线程。是的,我知道我可以通过使用异步和等待来完成它。但我不能使用它,因为这个东西不会被其他平台(Android和Phone)支持。从Metro App中的工作线程调用UI线程

在Windows Phone中,我知道这可以使用Deployment.Dispatcher.Current.BeginInvoke()来完成。但我不知道它是如何做在一个地铁应用程序

此外,我是C#和应用程序开发新手。所以如果你能详细介绍它,这将会有所帮助。

回答

0

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

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

相关问题