UWP зависает при попытке зарегистрировать фоновую задачу с помощью SocketActivityTrigger - PullRequest
0 голосов
/ 12 января 2020

Я пытаюсь зарегистрировать фоновую задачу с 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 и возможности частной сети.

Когда я запускаю его пару раз, он работает, а затем начинает зависать при запуске и не может запуститься, как вы видите на скриншоте:

enter image description here

После перезагрузки P C он снова начинает работать и через много раз снова начинает зависать, пока я снова не перезагрузлюсь ... et c.

Я уже пытался используйте BackgroundExecutionManager.RequestAccessAsync(); перед регистрацией, но проблема не решена.

То же самое происходит даже с этим приложением от Microsoft! Он запускается правильно с первого раза, а затем начинает зависать после запуска, как на скриншоте, до перезагрузки:

enter image description here

Проблема только с SocketActivityTrigger ; при попытке зарегистрировать задачу с помощью другого триггера (например, SystemTrigger типа SystemTriggerType.TimeZoneChange) проблема не возникает.

Обновление: я заметил, что проблема начинается после установления соединения с сокетом.

...