wangluo010 发表于 2015-5-22 09:01:04

重新想象 Windows 8 Store Apps (64)

  [源码下载]




重新想象 Windows 8 Store Apps (64) - 后台任务: 开发一个简单的后台任务  
作者:webabcd

介绍
重新想象 Windows 8 Store Apps 之 后台任务


[*]开发一个简单的后台任务
  
示例
1、通过“Windows 运行时组件”新建一个后台任务
BackgroundTaskLib/Demo.cs



/*
* 后台任务
*
* 注:
* 后台任务项目的输出类型需要设置为“Windows 运行时组件”,其会生成 .winmd 文件,winmd - Windows Metadata
*/
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.Background;
using Windows.Storage;
namespace BackgroundTaskLib
{
// 实现 IBackgroundTask 接口,其只有一个方法,即 Run()
public sealed class Demo : IBackgroundTask
{
public async void Run(IBackgroundTaskInstance taskInstance)
{
// 后台任务在执行中被终止执行时所触发的事件
taskInstance.Canceled += taskInstance_Canceled;
// 异步操作,即通知系统后台任务可在 IBackgroundTask.Run 方法返回后继续工作
BackgroundTaskDeferral deferral = taskInstance.GetDeferral();
try
{
// 指定后台任务的进度
taskInstance.Progress = 0;
// taskInstance.InstanceId - 后台任务实例的唯一标识,由系统生成,与前台的 IBackgroundTaskRegistration.TaskId 一致
// 写入相关数据到文件
StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(@"webabcdBackgroundTask\demo.txt", CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(file, "progress: 0, currentTime: " + DateTime.Now.ToString());
for (uint progress = 10; progress
{
btnRegister.IsEnabled = !_taskRegistered;
btnUnregister.IsEnabled = _taskRegistered;
if (_taskProgress != "")
lblMsg.Text = "进度:" + _taskProgress;
});
}
}
}
  
OK
[源码下载]
页: [1]
查看完整版本: 重新想象 Windows 8 Store Apps (64)