Windows 8 Windows 8套接字与后台任务的通信

Windows 8 Windows 8套接字与后台任务的通信,windows-8,Windows 8,我在Windows8应用程序中有一个用C编写的后台任务,我在将它连接到UI任务时遇到问题。我尝试在我的后台任务中打开一个StreamSocketListener,在我的UI任务中打开一个StreamSocket连接到它,反之亦然。如果我在UI任务或后台任务中同时拥有侦听器和连接器,则一切正常。然而,他们两人之间似乎存在某种孤立 我还可以连接到这两个平台上的外部服务,因此我认为这可能与需要环回豁免有关,但情况似乎也并非如此,因为打开AppContainer环回豁免实用程序会显示所有应用程序都具有环

我在Windows8应用程序中有一个用C编写的后台任务,我在将它连接到UI任务时遇到问题。我尝试在我的后台任务中打开一个StreamSocketListener,在我的UI任务中打开一个StreamSocket连接到它,反之亦然。如果我在UI任务或后台任务中同时拥有侦听器和连接器,则一切正常。然而,他们两人之间似乎存在某种孤立

我还可以连接到这两个平台上的外部服务,因此我认为这可能与需要环回豁免有关,但情况似乎也并非如此,因为打开AppContainer环回豁免实用程序会显示所有应用程序都具有环回访问权限


我还需要启用其他功能才能使我的应用程序的这两个部分之间的网络通信正常工作吗?我已经在我的包清单中启用了专用网络客户端和服务器功能,其他客户端/服务器对没有帮助,所以我只使用其中一个,您可以使用后台任务的完成事件,并在UI中重复运行它。使用LocalSettings传递数据


这有两个主要的缺点:1我无法在没有写入文件的情况下与大型数据结构进行通信,例如,任何大于8K的数据;2我无法进行频繁的后台任务。所谓频繁的后台任务,我指的是每10秒运行一次的后台任务,等等。。。。我目前正在使用ThreadingPool定时器来实现这一点,它工作得很好,我只需要一种方法来与UI线程通信。您甚至可以使用Progress事件,但同样,我希望传递更复杂的数据。@staticfloat-Yep LocalSettings值的大小只能为8K,足以容纳一些JSON序列化数据,但决不能太多。您应该为任务创建和客户端/服务器套接字流提供代码,因为只要后台任务是同一进程的一部分,它就应该能够与本地主机服务器建立流连接。我认为这正是我的问题。后台任务不在同一进程内运行。它们在backgroundTaskHost.exe进程上运行。我将更改我的代码以使用ControlChannelTrigger,这样我就可以在相同的进程中运行它,看看这是否更好!
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);
}