В моем приложении мне нужно сделать несколько вызовов сокетов TCP.
Чтобы сделать это, я должен сделать следующие шаги: 1. преобразовать мои данные/команду в поток байтов 2. создать сокет и отправить команду и получить ответ 3. проанализировать ответ и сохранить для использования пользовательского интерфейса.
Теперь я создал фоновый поток, чтобы иметь возможность выполнять все три шага.
Но в моем сокет-клиенте я также хочу создать новый поток для каждой новой команды (Шаг № 2). Это будет означать, что у меня есть несколько рабочих потоков внутри общего рабочего потока для всех трех вышеперечисленных шагов.
Итак, можно ли использовать асинхронную задачу для шага № 2, который уже выполняется в рабочем потоке. Или я использую обычную нить в этом случае.
Можно задаться вопросом, почему я не выполняю все три шага в одном рабочем потоке. Дело в том, что даже если я создам только один рабочий поток для всех команд сокета, существует вероятность того, что первоначальный запрос для шага 1 может сам исходить от рабочего потока.
Следовательно, я не могу просто предположить, что вызов исходит из основного потока пользовательского интерфейса. Так же хотел спросить не рекомендуется ли в андроиде создавать свои рабочие потоки и почему?
Спасибо, Санни