2
我正在使用BackgroundTask跟踪我的图片库中的文件和文件夹更改。这很好,但是当我一次删除多个文件时,BackgroundTask不会触发。UWP StorageLibraryContentChangedTrigger删除多个文件时
这里是我的BG-作业注册
private async void RegisterTask()
{
var result = await BackgroundExecutionManager.RequestAccessAsync();
var builder = new BackgroundTaskBuilder();
builder.Name = taskName;
builder.TaskEntryPoint = taskEntryPoint;
StorageLibrary picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);
StorageLibraryContentChangedTrigger libraryTrigger = StorageLibraryContentChangedTrigger.Create(picturesLibrary);
builder.SetTrigger(libraryTrigger);
builder.Register();
}
这是我简单的测试BG-任务
public async void Run(IBackgroundTaskInstance taskInstance)
{
var deferral = taskInstance.GetDeferral();
try
{
await DoWork();
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine("ERROR BG: " + ex.Message.ToString());
}
deferral.Complete();
}
最后我的DoWork()任务
private async Task DoWork()
{
StorageLibrary picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);
StorageLibraryChangeTracker picturesTracker = picturesLibrary.ChangeTracker;
picturesTracker.Enable();
StorageLibraryChangeReader changeReader = picturesTracker.GetChangeReader();
IReadOnlyList<StorageLibraryChange> changes = await changeReader.ReadBatchAsync();
foreach (StorageLibraryChange change in changes)
{
// Reading the changes
}
await changeReader.AcceptChangesAsync();
}
没有我想念什么?当只删除一个文件时,BackgroundTask将被成功触发,但当我从我的PicturesLibrary中一次删除多个文件时不会。
问候
谢谢你的回复。所以这个问题应该在下一个Windows 10(Mobile)版本中解决? – andy
@andy无法保证,相应的团队正在处理其他优先级最高的任务,我会密切关注此问题并在此处发布更新。感谢您的理解。 –
好吧,我明白了。感谢您的调查! – andy