Я пытаюсь зарегистрировать фоновую задачу с SocketActivityTrigger при запуске приложения, используя следующий код (внутри метода OnLaunched класса App):
foreach (var t in BackgroundTaskRegistration.AllTasks)
{ t.Value.Unregister(true); }
var builder = new BackgroundTaskBuilder();
builder.Name = exampleTaskName;
builder.TaskEntryPoint = "RuntimeComponent1.Class1";
builder.SetTrigger(new SocketActivityTrigger());
task = builder.Register();
Как видите, в начале я удаляю все ранее зарегистрированные задачи, чтобы убедиться, что я не регистрирую задачу дважды. На проект фоновой задачи (проект компонента времени выполнения) ссылается мой проект приложения, фоновая задача объявляется в декларациях в манифесте, а в манифесте также проверяются целые числа rnet и возможности частной сети.
Когда я запускаю его пару раз, он работает, а затем начинает зависать при запуске и не может запуститься, как вы видите на скриншоте:
После перезагрузки P C он снова начинает работать и через много раз снова начинает зависать, пока я снова не перезагрузлюсь ... et c.
Я уже пытался используйте BackgroundExecutionManager.RequestAccessAsync();
перед регистрацией, но проблема не решена.
То же самое происходит даже с этим приложением от Microsoft! Он запускается правильно с первого раза, а затем начинает зависать после запуска, как на скриншоте, до перезагрузки:
Проблема только с SocketActivityTrigger
; при попытке зарегистрировать задачу с помощью другого триггера (например, SystemTrigger типа SystemTriggerType.TimeZoneChange) проблема не возникает.
Обновление: я заметил, что проблема начинается после установления соединения с сокетом.