Главный вопрос заключается в том, что в «// делает много вещей ниже» почему человек, который первоначально написал эту проверкуJava нить пауза, конец грациозно и прервать
if (stopscript)
return;
Будет ли это на самом деле помочь что-нибудь? Разве вызов stopcript() от Obs не гарантирует, что поток будет остановлен? Когда я читаю такие вещи, как http://docs.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html, я не понимаю, где эта работа действительно выполняется. В методах run() я не уверен, где бы я вставлял текущую работу.
У меня есть класс Obs, в котором у меня есть местный класс Scripter и использовать его как это:
Scripter sscript;
Thread scriptthread;
Он имеет следующие (не весь класс), только биты него ::
Инстанцирования из Scripter в Obs:
sscript = new Scripter(...);
scriptthread = new Thread(exesscript);
Obsrunning = true;
scriptthread.start();
Эти и другие методы в Obs, которые вызываются, когда СТОП или END нажатия кнопок.
public void stopscript()
{
sscript.stopscript();
if (obssequencepaused)
{
sscript.resumescript();
JBpause.setText("PAUSE");
}
sscript = null;
}
public void endscript()
{
sscript.endscript();
if (obssequencepaused)
{
sscript.resumescript();
JBpause.setText("PAUSE");
}
}
Scripter Информация о классе ...
public class Scripter implements Runnable
{
@Override
public void run()
{
//does lots of stuff
}
final public void stopscript()
{
this.stopscript = true;
scriptthread.interrupt();
}
final public void pausescript()
{
this.pausescript = true;
}
final public void resumescript()
{
this.pausescript = false;
}
// sets parameters so loops should just fall through and main run() finishes
final public void endscript()
{
endscript = true;
numpositions = 0;
firstRepeats = 1;
repeats = 1;
}
}
Вопрос: этот код работает с графической библиотекой, такой как Swing (я вижу, вы вызываете 'setText (...)')? Кроме того, вы захотите изучить соглашения об именах Java и попытаться придерживаться их, особенно при публикации кода для других (нас!), Чтобы читать, просматривать, понимать и помогать вам, поскольку, не соблюдая эти правила, вы делаете это сложнее для нас. Обратите внимание, что имена переменных и методов должны начинаться с строчных букв и имен классов с буквой в верхнем регистре. –
В этом коде есть много изменений, если бы оно было моим. Я мог бы или не был бы допущен к этому. Этот код ничего, кроме обычного. Извините, если вам тяжело ребята и спасибо за попытку. – evernoob