У меня есть приложение Monodroid, которое выполняет много веб-запросов. Я делаю запросы от действий. Из-за этого мне нужна очередь для обработки моих запросов вне моей деятельности. Это делается для того, чтобы избежать одновременного выполнения нескольких запросов.
Поскольку я делаю свои запросы в другом потоке, используя ThreadPool.QueueUserWorkItem, кажется, что если пользователь открывает действие, запускает запрос, затем возвращается, открывает другое действие и запускает другой запрос до того, как первый запрос завершит использование блокировки веб-запросов и больше не функционирует.
Каким будет лучший подход для постановки в очередь задач запроса с обратными вызовами вне действия или кто-нибудь знает/имеет пример чего-то подобного? Я думаю, что ему нужно будет иметь дело со случаями, подобными описанным выше, когда действие может быть закрыто/уничтожено до завершения задачи. Это может означать, что задачу можно отменить или выполнить, но не обновить пользовательский интерфейс, поскольку он больше не существует.
В моем случае запросы, которые я делаю, находятся в разных функциях, выполняющих разные действия, поэтому обратные вызовы для обновления пользовательского интерфейса не всегда являются одними и теми же функциями. Также функции, которые я использую для выполнения запросов, имеют разные параметры. Я не уверен, что эти моменты усложняют/упрощают создание решения этой проблемы, но я предполагаю, что мне нужно будет переработать большую часть моего кода.