Поскольку другие сказали, то, что необходимо опросить, вероятно, показательно из более глубокой проблемы с дизайном системы..., но иногда это - путь, которым это идет, таким образом...
, Если требуется обработать "уничтожение" процесса немного более корректно, Вы могли бы установить рычаг завершения работы, который называют, когда Вы поражаете Ctrl + C :
volatile boolean stop = false;
Runtime.getRuntime().addShutdownHook(new Thread("shutdown thread") {
public void run() {
stop = true;
}
});
затем периодически проверяют переменную остановки.
А более изящное решение состоит в том, чтобы ожидать на событии:
boolean stop = false;
final Object event = new Object();
Runtime.getRuntime().addShutdownHook(new Thread("shutdown thread") {
public void run() {
synchronized(event) {
stop = true;
event.notifyAll();
}
}
});
// ... and in your polling loop ...
synchronized(event) {
while(!stop) {
// ... do JDBC access ...
try {
// Wait 30 seconds, but break out as soon as the event is fired.
event.wait(30000);
}
catch(InterruptedException e) {
// Log a message and exit. Never ignore interrupted exception.
break;
}
}
}
Или что-то как этот.
В Visual Studio щелкните правой кнопкой мыши свой проект (тот, который скомпилирован в exe), выберите «Свойства» на вкладке «Приложение» в разделе «Значок и манифест», измените значок.