私は自分のユーザー用のライブラリを作成しようとしており、できるだけ使いやすいようにしたいと考えています。今すぐ使用するには、メインスレッドで新しいスレッドを開始し、多くの変数を設定する必要がありますが、ユーザーは常にJavaに慣れているとは限らず、一部のユーザーにとってはスレッドが難しいかもしれません。メインクラスで新しいスレッドを開始するJavaクラス
スレッドの全体を自分のクラスに移動し、ユーザーが関数を呼び出してスレッドを開始できるようにします。ここで
は、私は現在、メインクラスで実行しているスレッドである:
int valueToAdd = 0;
DreamStatsTracker tracker = new DreamStatsTracker();
StartSessionResponse response = tracker.StartSession("ae-13s-90-11", "Abe");
System.out.println(response.getMessage());
System.out.println("Adding skill Herblore");
String message = tracker.AddSkill(response.getSessionId(), Skill.HERBLORE, "Abe");
Thread thread = new Thread(() -> {
while(true) {
tracker.SetValueForSkill(response.getSessionId(), Skill.HERBLORE, valueToAdd);
}
});
私はDreamStatsTracker
クラスにその全体の事を動かすのが好き、そしてメインクラスからこのような何かをするだろう。
DreamStatsTracker tracker = new DreamStatsTracker();
tracker.AddSkill(Skill1, ValueForSkill1);
tracker.AddSkill(Skill2, ValueForSkill2);
tracker.Start();
DreamStatsTracker
の新しいインスタンスが開始され、新しいスレッドが開始され、メインクラスの実行中に追加されたスキルの値がバックグラウンドで継続的に追跡されます。
私はこれにどのようにアプローチすれば可能ですか?
..だからあなたはに '新しいThread'の初期化を移動したいですDreamStatsTrackerメソッドは 'Start()'と呼ばれていますか? –
何かこれらの線に沿ってええ。 Startメソッドには、追加されたスキルごとに次のコードを実行するforeachループが含まれます。 tracker.AddSkill(response.getSessionId()、SkillName、 "Username"); スレッド内のスキルに送信されたデータを継続的に追跡します – Jannik
それで問題は何ですか?そのスレッドの作成を移動し、 'tracker.start()'メソッドで開始すれば、それだけです。 – Nikem