当前位置: 首页 > 知识库问答 >
问题:

为什么我的WinRT应用程序在尝试调试我的后台任务时关闭?

胡越泽
2023-03-14
Win8BackgroundTest
{
    public class TestBackgroundTask
    {
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            var deferral = taskInstance.GetDeferral();

            var uri = new Uri("http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_h264.mov");
            var folder = ApplicationData.Current.LocalFolder;
            var downloadFile = await folder.CreateFileAsync(uri.Segments.Last(), CreationCollisionOption.GenerateUniqueName);
            var dataFile = await folder.CreateFileAsync("downloadData", CreationCollisionOption.GenerateUniqueName);
            var downloader = new BackgroundDownloader();
            var operation = downloader.CreateDownload(uri, downloadFile);

            await FileIO.WriteTextAsync(dataFile, "Success at " + DateTime.Now);

            deferral.Complete();
        }

        public static async void RegisterTask()
        {
            const string taskName = "TestBackgroundTask";

            try
            {
                var status = await BackgroundExecutionManager.RequestAccessAsync();
                if (status == BackgroundAccessStatus.Denied)
                {
                    return;
                }
            }
            catch
            {
                // already accepted
            }

            var tasks = BackgroundTaskRegistration.AllTasks
                .Where(x => x.Value.Name == taskName)
                .ToArray();

            if (tasks.Any())
            {
                return;
            }

            var builder = new BackgroundTaskBuilder
            {
                Name = taskName,
                TaskEntryPoint = "Win8BackgroundTest.TestBackgroundTask",
            };

            builder.SetTrigger(new TimeTrigger(60, false));

            var registeredTask = builder.Register();
        }
    }
}
        TestBackgroundTask.RegisterTask();

单步执行似乎使任务注册工作成功,没有任何例外。然后返回visual studio,在任务的run()方法的第一行添加断点,然后转到“调试位置”工具栏,单击向下箭头并选择TestBackgroundTask。几秒钟后,visual studio退出(我的应用程序也退出)。

有人看到我做错了什么导致后台任务失败吗?

共有1个答案

上官鸿晖
2023-03-14

所以,在经历了很多挫折和尝试和错误之后,这个问题是两种评论的结合。

因此,首先,似乎您不能将后台任务与windows store应用程序的其余部分放在同一项目中。它必须在自己的windows运行时组件项目中。

最后,有时它不起作用,不管出于什么原因,删除bin和obj文件夹就可以解决这个问题。

 类似资料:
  • 如何启动线程: 我调用关闭线程:

  • 我尝试以下代码,但它显示错误消息: 错误消息:- 处理该命令时发生未知的服务器端错误。(警告:服务器未提供任何stacktrace信息)

  • 我的应用程序有一个问题,我最近开始在Android studio中编程,但我遇到了一个无法解决的问题。所以我有一个包含4个活动的主页面,当我在模拟器中运行程序时,应用程序打开,其中3个活动工作完美,但当我点击打开activity时,我尝试实现滚动条的一个活动崩溃了。 代码如下: 还有撞车: 07/03 16:54:21:正在启动应用程序$adb install-multiple-r-t-p com

  • 问题内容: 我目前正在使用Java EE技术和Eclipse作为IDE开发MVC应用程序。要运行服务器并部署应用程序,我正在使用ANT。我想知道如何通过ant工具或Eclipse调试Java代码。 问题答案: 将以下选项添加到您的tomcat start命令中: 您将能够使用调试类别在端口5000上附加Eclipse调试器。

  • 我知道这个问题在这里已经被问了无数次了,我已经搜索了SO和其他来源来寻找解决方法,但我就是无法解决这个错误。我的ClientPlayer类属性有一个getter和setter,当某个按钮被调用时setter在GUI中被调用,我希望在客户端连接对象并将对象发送到服务器后使用getter。调用方法“This.client.SendTCP(ClientPlayer.GetPlayerName());”返

  • 我试图在Eclipse中调试一个简单的java程序,结果出现了以下错误: 本机方法中的致命错误:JDWP未初始化任何传输,jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)错误:传输错误202:连接失败:连接超时错误:JDWPTransport dt_socket未能初始化,TRANSPORT_nit(510)JDWP退出错误AGENT_ERROR_TRANSPO