Показать сообщение отдельно
Старый 17.03.2011, 17:15   #1
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Синхронизация тредов

У меня есть поток канвасный, в котором прорисовываеться консоль, но консоль не успевает.
Нужно сделать чтобы тред из которого вызываеться действие в консоли подождал пока консоль прорисует.




Ситуация такая.


Session.java

    Main.main.log.write("HTTP " + responsecode + " " + net.getResponseMessage(), obj);
    //TODO: тут надо подождать пока там прорисует

Log.java:

    public void write(String tex) {     //этот метод мы вызываем
        if ((tex != null) && (!tex.equals(""))) {
            action = true; //чтобы установить флажок на рсование
            synchronized(texts) {
                texts.addElement(tex); //и добавить в очередь что надо написать
            } //TODO избавиться очереди.
        }
    }
    public void run() {
        while (true) {
            try {
                Thread.sleep(10);
            }
            catch (InterruptedException ie) { }
            if (action) repaint();
        }

    }
    public void paint(Graphics g) {
        if (action) {
            //рисуем
            action = false;
        }
    }
(Offline)
 
Ответить с цитированием