Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone Windows Phone 8.1中是否有BackgroundTask的替代方案?_Windows Phone_Windows Phone 8.1 - Fatal编程技术网

Windows phone Windows Phone 8.1中是否有BackgroundTask的替代方案?

Windows phone Windows Phone 8.1中是否有BackgroundTask的替代方案?,windows-phone,windows-phone-8.1,Windows Phone,Windows Phone 8.1,我有一个Windows Phone 8.0应用程序,正在移植到8.1。在8.0中,我非常依赖BackgroundWorker来执行我不想使用UI线程的任务 我将创建BackgroundWorker,定义DoWork()委托,然后立即执行RunWorkerAsync() 现在在8.1中,我不能再使用BackgroundWorker。相反,我需要创建实现IBackgroundTask的任务,并使用IBackgroundTrigger对象运行它们 似乎我需要跨越很多障碍才能在不同的线程上运行代码。如果

我有一个Windows Phone 8.0应用程序,正在移植到8.1。在8.0中,我非常依赖
BackgroundWorker
来执行我不想使用UI线程的任务

我将创建
BackgroundWorker
,定义
DoWork()
委托,然后立即执行
RunWorkerAsync()

现在在8.1中,我不能再使用
BackgroundWorker
。相反,我需要创建实现
IBackgroundTask
的任务,并使用
IBackgroundTrigger
对象运行它们

似乎我需要跨越很多障碍才能在不同的线程上运行代码。如果我想立即运行后台任务,我会创建一个时间触发的后台任务,使用新的oneShot
TimeTrigger()
创建0分钟的刷新时间?那看起来有点像黑客


是否有
背景任务
的替代方案?我应该以不同的方式处理我的需求吗

要在不同的线程上运行任何操作,只需调用:

Task.Run(delegate() {
    // The work to be executed on the background thread
});
您还可以以非阻塞方式等待,以防在不同线程中的工作完成后需要执行某些操作


IBackgroundTask
完全不同。当应用程序未运行时,您希望在某个事件上执行某些代码时,可以使用它。例如,如果您想每30分钟更新一次实时互动程序,您可以使用后台任务来实现该接口。

+1 WP8.1 RT中的BackgroundTask类似于WP8.0中的BackgroundAgent。至于BackgroundWorker和点击-。若我想在应用程序挂起或前台时将我的位置更新到服务器上,该怎么办?