次の方法で共有


BackgroundTaskBuilder.SetTaskEntryPointClsid(Guid) メソッド

定義

既存の 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 分間隔でタイム トリガーに登録する方法を示します。

サンプル コードでは、特定のタスク名を持つバックグラウンド タスクが既に登録されているかどうかを確認することで、重複するタスクの作成を回避します。 これはサンプル コードで行われます。これは、特定のバックグラウンド タスクの登録が 1 つだけ存在するという意図があるためです。

同じエントリ ポイント (またはトリガーまたは名前) を持つ 1 つまたは複数のバックグラウンド タスクを作成するのは、アプリ開発者が行う必要があります。

 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 アクティブ化の場合、アクティブ化する CLSID は、登録時に SetTaskEntryPointClsid メソッドを使用して指定されます。 COM 登録では、アウトプロセス COM サーバー (つまり LocalServer32) を識別する必要があります。

適用対象

こちらもご覧ください