Пользовательский интерфейс моего приложения выполняется в основном потоке. Он создает поток прослушивателя TCP, который ожидает подключения, а затем создает другой поток, который будет обрабатывать подключение.Есть ли способ, чтобы поток обработки TCP мог взаимодействовать с моим основным потоком, устанавливать элементы пользовательского интерфейса или вызывать какие-либо функции, которые выполняются одновременно?
Это сетевой контроллер в моем главном потоке, создающий новый прослушиватель TCP
public void serverStart() throws IOException {
Thread t = new Thread(new TCPEchoServer(this.getApp()));
t.start();
Я попытался передать ему экземплярный контроллер приложений, надеясь, что он может взаимодействовать с основным потоком, но я получил Java.lang.reflect.InvocationTargetException
Это прослушиватель TCP, создающий ClientThread, который будет обрабатывать информацию, поступающую и откуда я хочу связаться с основным потоком
while (true) {
/*server will accept a connection and start a new "ClientThread" for that connection */
try {
Socket socket = serverSocket.accept();
ClientThread clientThread = new ClientThread(socket, ++clientId,app);
clientThread.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}