了解暂停状态的工作原理(UWP app)

时间:2016-03-12 21:32:39

标签: c# multithreading windows-runtime signalr win-universal-app

我正在开发一个UWP应用程序,它使用SignalR将实时消息发送到API。

一切正常,即使我的应用程序进入暂停状态(例如用户进入锁定屏幕),信号器成功保持连接活着。

问题是,当应用程序暂停时互联网连接丢失,网络套接字连接断开,我想在互联网访问再次启动后立即重新打开连接。

但我无法管理这项工作,请致电:

await HubConnection.Start(); 

无限期挂起,它永远不会返回,连接也不会重启。 我调查了一下,似乎IHubConnection.Start()调用了一个新线程,由于app被挂起,因此排队等候。我尝试像这样调用调度程序的方式相同:

Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
async () =>
{
    await HubConnection.Start(); // 1
});

在暂停状态期间永远不会调用语句// 1,但只要应用程序恢复,它就会被执行。

应用程序暂停时是否可以重新启动SignalR连接?或者它是否需要一个新的线程,必须排队才能恢复应用程序?

0 个答案:

没有答案
相关问题