2017-02-25 88 views
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中一次删除多个文件时不会。

问候

回答

2

我错过了什么?如果只删除一个文件,该BackgroundTask将成功触发,而不是当我立刻从我PicturesLibrary

目前bahavior是,删除多个文件时,更改记录将被推迟到一个删除多个文件在下一次改变。

例如,删除这两个文件后,我们创建了一个新文件,任务被触发,删除修改包括在StorageLibraryChange列表:

[2/28/2017 4:52:35 PM] Background LibFileChangeTask Start 
Path: C:\Users\xxxx\Pictures\2.txt 
ChangeType: Deleted 
Path: C:\Users\xxxx\Pictures\1.txt 
ChangeType: Deleted 
Path: C:\Users\xxxx\Pictures\New Text Document.txt 
ChangeType: Created 

我们已经向这个问题和相关团队正在煽动它。

+0

谢谢你的回复。所以这个问题应该在下一个Windows 10(Mobile)版本中解决? – andy

+0

@andy无法保证,相应的团队正在处理其他优先级最高的任务,我会密切关注此问题并在此处发布更新。感谢您的理解。 –

+0

好吧,我明白了。感谢您的调查! – andy