我在Windows 8应用程序中使用C#编写了一个后台任务,但我无法将其连接到我的UI任务。我尝试在我的后台任务上打开一个StreamSocketListener,并在我的UI任务上连接到StreamSocket,以及相反的方式。如果我在UI任务或后台任务中都有侦听器和连接器,那么一切正常。但是,他们之间似乎存在某种隔离。
我也可以连接到两者的外部服务,所以我认为它可能与需要环回豁免有关,但似乎也不是这样,因为打开AppContainer Loopback Exemption Utility将所有应用程序显示为具有环回访问权限。
我需要启用哪些其他功能才能使我的应用的这两个部分之间的网络通信正常工作?我已经在我的包清单中启用了专用网络(客户端和服务器)功能,(其他客户端/服务器对没有帮助,所以我只是使用那个)
答案 0 :(得分: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);
}