На чем лучше реализовать фоновую задачу в браузере?
Присматриваюсь к BackgroundService. Но, как я понимаю, он начинает работу и постоянно сразу после запуска приложения (сам я делаю приложение на основе Blazor Hybrid). Как я понимаю, Thread использовать в браузере нельзя. Еще читал про BackgroundWorker, не знаю, насколько он актуален? Задача примерно следующая:
Есть модель Channel. В классе-сервисе (добавленной через AddSingleton) хранится Dictionary<Guid, Channel> Channels. На странице "создания канала" формируется запрос. И при нажатии на кнопку "создать" запрос оправляется на api, обратно получаю все необходимое для создания канала. Все это обычно продолжатся секунды (в худших случаях будет > 10 сек).
И вот сейчас это все выполняется в потоке UI асинхронно (но для теста создание происходит < 1 сек). Мне нужно чтобы создание (обновление) происходило на фоне, т.е. я свободно могу переходить по страницам. И вот как лучше это реализовать?
По хорошему, если тебе нужна какая-то фоновая задача, которая будет работать при переходе между страницами, закрытии вкладок, браузера, итд, то лучше это делать на стороне сервера, а не клиента. Клиент пусть просто получает статус обработки его задачи.
Есть corewcf и hangfire. Смотри что больше тебе подходит.
Василий Банников, У меня теперь браузер не основной приоритет. Первоначально хотел чисто на Blazor Web Server, но из-за ограничений API о которых узнал позже, пришлось прейти на Blazor Hybrid и делать приложение по сути только с клиентской частью. Браузер чисто, если у кого-то может быть Linux.
По хорошему надо было делать на Avalonia, но уже с нуля к сожалению нету времени. Но при этом хочу на стороне MAUI реализовать еще фоновый режим.
Я очень очень удивлен этой технологии, приложение на основе веб браузера и встроенного веб сервера (точнее симуляции его работы). Точнее я понимаю, почему так делают на electron и javascript, потому что это по факту единственный способ сделать UI на его основе...
Но зачем делать так при использовании шикарнейшего фреймворка .net. в котором как минимум пять мощнейших движков, начиная с legacy WinForms и кончая этим же MAUI? зачем делать максимально плохо (с точки зрения ресурсов)?
Василий Банников, можно отсылать запрос на API раз 3 секунды. Ну т.е я хотел чтобы можно было регистрироватся и хранить данные пользователей на сервере. А теперь все будет сохранятся на устройстве.