イム種類を中断/新しいスレッドと殺害を作成できませんし、ちょうどグループプロジェクトで問題に遭遇したアイブ:Javaのスレッド:古いスレッドにJavaスレッドへの新規の
//編集:プログラムはJFrameのですプロパティファイルの変更をロードするために一種の「再起動」が必要です。
いくつかのプロパティを変更できるプログラムがあります。変更を有効にするために 、プログラムは再起動を必要とする/新しいJVMでの新しい打ち上げは(私には思える?)
問題は、以下の通りです:
私はすでにactualy我々のプログラムを起動するスレッドを作りました後で変更すると、新しいスレッドを作成するためのプログラムが起動します。これは動作していますが、古いスレッドを強制終了できません。そして、私がそれをしようとすると( "X"またはプログラムで)私は同時に両方のインスタンスを殺します。 実際には2つのスレッドはありませんか? - そうでなければ、彼らは別々に扱われなければならないのですか?
一方、Thread.currentThread().interrupt()
を使用すると、両方のインスタンスが残りますが、文字通り何もできません。
スレッドスターター:
public static void createNewInstance() {
prog = new Runnable() {
@Override
public void run() {
try {
//loading propertie data into String[] array..
Start.main(String[] array);
while (true) {
if (!isRunning) {
currentThread().interrupt();
createNewInstance();
isRunning = !isRunning;
}
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
};
new Thread(prog).start();
}
と変更イベントでこのよう
MyThread.isRunning = false;
Thread.currentThread().interrupt();
は私にとって新しいものであると私は、あらゆる種類のための感謝、このIMを達成する方法を見つけ出すことはできません私がこれまでに作った何らかの間違いやアドバイスの (ご迷惑をおかけして申し訳ありません。ネイティブスピーカーではありません)
ありがとうございます!
----回避策ソリューション:propertie変更は新しい言語設定に関連していた私の場合は----
:DE - > EN
マイメッセージ:
public class Messages { private static String bundle_name = "com.ttr.language.messages" + new PropertiesClass().getProperty("lang"); //$NON-NLS-1$ private static ResourceBundle resource_bundle = ResourceBundle.getBundle(bundle_name);
は、それから私は、メッセージクラスにこのメソッドを追加しました:
public static void updateProperties(String language) { bundle_name = "com.ttr.language.messages" + language; resource_bundle = ResourceBundle.getBundle(bundle_name); }
は、そして、私のプログラムでそれを使用:
props.setProperty("lang", "EN");
< - 例 Messages.updateProperties(props.getProperty("lang"));
//dispose window and start login
あなたが実際に現在のスレッド、中断を期待するかもしれないものを中断する。正しく中断するには、 'createNewInstance()'で作成したスレッドのインスタンスが必要です。 –
また、自分自身を中断するためにスレッドを必要としないと確信しています。 Runnableの本体から離れるようにするだけで、正常に停止します。 –
こんにちは、速い返信をいただきありがとうございます!私は変更イベントにすべてを渡す必要がありますか?私たちはたくさんのクラスを静かにしています...あるいは、私は 'getInstanceOf(MyThread).currentThread()'のようなことをすることができますか? – Slajoc