首先,是的,我在谷歌上查找了這個問題,我沒有找到任何答案。只有線程完成並且返回值的答案。我想要的是返回一個「無限」數量的值。從線程返回一個值
只是爲了讓你更清楚:我的線程正在讀取來自套接字的消息,並沒有真正完成。所以每當有新消息進來時,我都希望另一個班級得到這個消息。我會怎麼做?
public void run(){
while(ircMessage != null){
ircMessage = in.readLine();
System.out.println(ircMessage);
if (ircMessage.contains("PRIVMSG")){
String[] ViewerNameRawRaw;
ViewerNameRawRaw = ircMessage.split("@");
String ViewerNameRaw = ViewerNameRawRaw[2];
String[] ViewerNameR = ViewerNameRaw.split(".tmi.twitch.tv");
viewerName = ViewerNameR[0];
String[] ViewerMessageRawRawRaw = ircMessage.split("PRIVMSG");
String ViewerMessageRawRaw = ViewerMessageRawRawRaw[1];
String ViewerMessageRaw[] = ViewerMessageRawRaw.split(":", 2);
viewerMessage = ViewerMessageRaw[1];
}
}
}
那麼,你應該試圖瞭解這些答案,'的run()'不返回任何東西,所以這通常調用一個方法(使用事件或其他東西),這可以在你想要的時候完成。 – AxelH
您可以使用線程放置消息的隊列。用戶將從隊列中獲取消息。請參閱http://stackoverflow.com/questions/2332537/producer-consumer-threads-using-a-queue –
@AxelH我知道它不會返回任何東西。這是我的問題。 「我如何從這個線程返回值」? – TomiG