Witam mam problem z wątkami w swoim w programie. Mianowicie posiadam klase czytającą z zewnętrznego buffora. Jest ona wywoływana poprzez naciśniecie przycisku i z czytuje z góry założona przerwą (sleep`em). Jednak podczas inicjalizacji jej wyrzuca ma poniższy excpetion i wykonuje zczytanie, również chciałbym ją zatrzymać na jakis czas przez naciśniecie button ale thread.stop(); sypie się wyjątkami.
"Exception in thread "Thread-4" java.lang.IllegalMonitorStateException
at java.lang.Object.wait(Native Method)
at desktopapplication1.ThreadRead.run(ThreadRead.java:43)"
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package desktopapplication1;
import desktopapplication1.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.microedition.io.StreamConnection;
public class ThreadRead extends Thread {
ThreadRead(Controler controler) {
this.controler = controler;
streamconnection = controler.getStreamConnection();
try {
inStream = streamconnection.openInputStream();
bReader=new BufferedReader(new InputStreamReader(inStream));
} catch (IOException ex) {
System.out.println(ex);
}
}
@Override
public void run() {
System.out.println("run");
try {
while(controler.getConnectedBT()) {
lineRead = bReader.readLine();
System.out.println(lineRead);
System.out.println("nasluchuje while");
this.wait(1000);
}
} catch (IOException ex) {
System.out.println(ex);
} catch (InterruptedException ex) {
Logger.getLogger(ThreadRead.class.getName()).log(Level.SEVERE, null, ex);
}
}
private Controler controler;
private StreamConnection streamconnection;
private InputStream inStream;
private BufferedReader bReader;
private String lineRead;
}