В UWP я пытаюсь создать простую фоновую задачу по требованию. Поэтому, когда я нажимаю кнопку, я хочу, чтобы фоновая задача запускалась и обрабатывала некоторые файлы в фоновом режиме.
Ниже приведен код моей основной задачи:
public class BackgroundSyncService
{
private ApplicationTrigger trigger = new ApplicationTrigger();
public async Task Start()
{
if (IsRegistered())
Deregister();
BackgroundExecutionManager.RemoveAccess();
// does this prompt everytime?
await BackgroundExecutionManager.RequestAccessAsync();
var builder = new BackgroundTaskBuilder();
builder.Name = "BackgroundTask";
builder.TaskEntryPoint = typeof(BackgroundTask).FullName;
builder.SetTrigger(trigger);
BackgroundTaskRegistration task = builder.Register();
task.Completed += Task_Completed;
var result = await trigger.RequestAsync();
}
private void Task_Completed(BackgroundTaskRegistration sender, BackgroundTaskCompletedEventArgs args)
{
// alert UI
}
public void Stop()
{
Deregister();
}
private void Deregister()
{
var taskName = "BackgroundTask";
foreach (var task in BackgroundTaskRegistration.AllTasks)
if (task.Value.Name == taskName)
task.Value.Unregister(true);
}
private bool IsRegistered()
{
var taskName = "BackgroundTask";
foreach (var task in BackgroundTaskRegistration.AllTasks)
if (task.Value.Name == taskName)
return true;
return false;
}
}
Когда код набирает builder.Register()
, выдается следующее исключение:
System.Exception: 'Невозможно создать файл, если этот файл уже существует.
(Исключение из HRESULT: 0x800700B7) '
Не знаете, что я делаю здесь неправильно или что означает эта ошибка в контексте фоновой задачи?