BackgroundTaskBuilder.SetTaskEntryPointClsid(Guid) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用现有 BackgroundTaskBuilder 对象分配 COM CLSID 入口点。
public:
virtual void SetTaskEntryPointClsid(Platform::Guid TaskEntryPoint) = SetTaskEntryPointClsid;
void SetTaskEntryPointClsid(winrt::guid const& TaskEntryPoint);
public void SetTaskEntryPointClsid(Guid TaskEntryPoint);
function setTaskEntryPointClsid(TaskEntryPoint)
Public Sub SetTaskEntryPointClsid (TaskEntryPoint As Guid)
参数
- TaskEntryPoint
-
Guid
Platform::Guid
winrt::guid
应用程序定义的 TaskEntryPoint 类的名称。
Windows 要求
设备系列 |
Windows 10, version 2004 (在 10.0.19041.0 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v10.0 中引入)
|
示例
下面的代码示例演示了如何使用 BackgroundTaskBuilder 将创建的 WinMain COM 后台任务注册到时间间隔为 15 分钟的时间触发器。
示例代码通过检查具有特定任务名称的后台任务是否已注册来避免创建重复的任务。 这是在示例代码中完成的,因为意图是只存在一个特定的后台任务注册。
由应用开发人员决定创建一个或多个具有相同入口点 (或触发器或名称) 的后台任务。
using System;
using Windows.ApplicationModel.Background;
public IBackgroundTaskRegistration RegisterBackgroundTaskWithSystem(IBackgroundTrigger trigger, Guid entryPointClsid, string taskName)
{
foreach (var registrationIterator in BackgroundTaskRegistration.AllTasks)
{
if (registrationIterator.Value.Name == taskName)
{
return registrationIterator.Value;
}
}
BackgroundTaskBuilder builder = new BackgroundTaskBuilder();
builder.SetTrigger(trigger);
builder.SetTaskEntryPointClsid(entryPointClsid);
builder.Name = taskName;
BackgroundTaskRegistration registration;
try
{
registration = builder.Register();
}
catch (Exception)
{
registration = null;
}
return registration;
}
RegisterBackgroundTaskWithSystem(new TimeTrigger(15, false), typeof(TimeTriggeredTask).GUID, typeof(TimeTriggeredTask).Name);
注解
对于经典 COM CLSID 激活,在注册期间通过 SetTaskEntryPointClsid 方法指定要激活的 CLSID。 COM 注册必须标识进程外 COM 服务器 (即 LocalServer32) 。