Я пытаюсь прервать поток, в котором выполняется шифрование AES для файла. Это может занять некоторое время, пока я придумал это.
Это тело находится внутри кнопки активации события. Когда пользователь снова нажимает кнопку (предложение else). Поток должен быть прерван, но я был бы счастлив, если бы мог полностью остановить поток. Но это устарело.
В любом случае, поток игнорирует .interrupt () и продолжает выполнять файл aes256. Он поднимает флаг fileEncryptThread.isInterrupted (), но из-за использования процессора я вижу, что он все еще продолжает хрустить файл.
Я прочитал руководство по безопасной остановке потоков, но у меня нет желания полностью переделывать мою и без того медленную реализацию AES, чтобы проверять флаги прерываний вне класса ...
fileEncryptThread = new FileThread() // new thread please
{
@Override
public void run()
{
String result = "";
result = MyCrypto.aes256File(enInPath,
enOutPath,
charsToString(passT.getPassword()),
sec);
if (!"".equals(result)) // error handling
{
JOptionPane.showMessageDialog(null,result);
}
}
};
fileEncryptThread.start();
}
else // if stop clicked
{
fileEncryptThread.interrupt();