| 
 | 
	
 
 
  [源码下载] 
 
 
 
 
重新想象 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 
[源码下载] |   
 
 
 
 | 
  
 | 
 | 
 | 
| 
 | 
 |