1

我在 Windows 8 应用程序中有一个用 C# 编写的后台任务,我无法将它连接到我的 UI 任务。我尝试在我的后台任务上打开一个 StreamSocketListener 并在我的 UI 任务上打开一个 StreamSocket 来连接它,反之亦然。如果我在 UI 任务或后台任务中同时拥有侦听器和连接器,则一切正常。然而,他们两人之间似乎有某种隔离。

我也可以连接到它们两个上的外部服务,所以我认为这可能与需要环回豁免有关,但似乎也不是这样,因为打开 AppContainer Loopback Exemption Utility 显示所有应用程序具有环回访问权限。

我还需要启用其他功能以使我的应用程序的这两个部分之间的网络通信正常工作吗?我在我的包清单中启用了专用网络(客户端和服务器)功能,(其他客户端/服务器对没有帮助,所以我只是使用那个)

4

1 回答 1

0

您可以使用后台任务的完成事件并在 UI 中重复运行它。使用 LocalSettings 传递数据。

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977055.aspx

private void OnCompleted(IBackgroundTaskRegistration task, BackgroundTaskCompletedEventArgs args)
{
    var settings = ApplicationData.Current.LocalSettings;
    var key = task.TaskId.ToString();
    var message = settings.Values[key].ToString();
    UpdateUIExampleMethod(message);
}
于 2013-03-11T18:58:41.493 回答