背景任务UWP C++只触发一次

BackgroundTask UWP C++ trigger only one time?

本文关键字:一次 任务 UWP C++ 背景      更新时间:2023-10-16

在windows运行时组件项目(BackgroundTask c++(

#include "pch.h"
#include "BackgroundTask.h"
using namespace Platform;
namespace SyncBackground {
void BackgroundTask::Run(IBackgroundTaskInstance^ taskInstance) {
_taskInstance = taskInstance;
taskInstance->Canceled += ref new BackgroundTaskCanceledEventHandler(this, &BackgroundTask::OnCanceled);
_deferral = taskInstance->GetDeferral();
OutputDebugString(L"Debug: CPPrn");
}
void BackgroundTask::OnCanceled(IBackgroundTaskInstance^ sender, BackgroundTaskCancellationReason reason) {
_deferral->Complete();
}
}

我尝试了c#项目中的ApplicationTrigger,但OutputDebugString从第一个触发器只写了一次。在相同的BackgroundTask C#中,Debug.WriteLine()写入每个触发器。

那为什么在c++中只做一次呢?以及如何让它看起来像c#(我需要通过触发器发送一些数据和命令(感谢

我需要它仍然运行后台

如果我理解正确,您只想无限期地运行后台任务。如果是这样的话,即使你不调用TaskDeferral.Complete();,它也不会在后台运行,一段时间后,它仍然会被终止。在这种情况下,您可以参考本文档进行配置。但它提到,如果你使用它,你就不能将应用程序放入微软商店。如果没有,请指出。

相关文章: