私は、csvファイルからトランザクションデータの一括読み込みを実行するバックグラウンドサービスを設定しようとしています。このバックグラウンドサービスは、コントローラ/プレゼンタクラスのメソッドにマップされたメニュー項目のアクションから開始されます。JavaFX2:バックグラウンドのタスク/サービスを一時停止できますか?
データベースでマスターデータが見つからないcsvファイルでデータが表示されることがよくありますが、これは通常アップロードがチョークして失敗する原因になります。
このような場合、バックグラウンドサービスで処理を一時停止し、プレゼンタークラスからダイアログを呼び出してユーザー入力を受け入れることができるようにしたいと考えています。ユーザー入力は、データベースにマスター行を追加するために使用されます。その後、バックグラウンド・サービスは、中断していた場所から再開する必要があります(csvファイルの先頭からではなく、エラーの原因となった行から)。
おそらくjavafx.concurrent APIを使用して、これをJavaFXで実現できますか?これをどうやってやりますか?
優秀、これは仕事をするように見えます。ありがとう。 –
解決策を提供していただき、ありがとうございます。この変更は私の問題を解決するように見えます。しかし、あなたが提供したサンプルコードでは、最も興味深い動作が見られます。 入力文字列を変更し、最初のトークンを 'MISSING'に設定すると、プログラムがハングします。ユーザー入力を受け取るダイアログウィンドウがポップアップしません。しかし、(NetBeans 7.2で)デバッグを進めるとうまくいきます。ここで何が起こっているのか? –
サンプルコードにバグがありました。コンテナがまだシーンに追加されていないときに(報告されていない) 'NullPointerException'を(正しく)投げていたタスクの中で、サンプルは' container.getScene()。getWindow() 'を使います。サンプルのロジックの順序を変更して、使用するコンテナがシーンに追加され(問題を回避するまで)、タスクが開始されないようにしました。 [更新サンプルコードリンク](https://gist.github.com/jewelsea/4989970)。 – jewelsea