長時間実行しているデータベース操作をどのようにシミュレートできますか?私の要件は、操作が完了するまでJProgressBarを持つダイアログボックスを表示することです。長期実行操作のシミュレーション
答えて
バックグラウンドスレッド(SwingWorkerによって提供されるものなど)を使用して、forループを1から10に実行し、ループの内部でThread.sleepを実行します。その後、確定モードのJProgressBarであれば、プログレスバーにループインデックスを10 *渡すことでその値を更新できます(もちろん、スイングスレッド、EDTに注意してください)。
編集:
@James Poulson:あなたはSwingWorkerのオブジェクトを使用している場合は、EDT上で更新するpublish/process
方法とdone
メソッドを使用します。独自のバックグラウンドスレッドを使用している場合は、Swing呼び出しのグループをRunnableにラップし、invokeLaterを使用してEDTにキューイングしてください。
+1 [ここ](http://stackoverflow.com/questions/4637215/can-a-progress-bar-be-used-in-a)に示されているように、待ち時間をシミュレートするために、ワーカーのバックグラウンドスレッドでスリープ状態にしても問題ありません。 -class-outside-main/4637725#4637725)。 – trashgod
@HovercraftFullOfEels答えをありがとう。 EDTでコンポーネントが更新されることを確認するにはどうすればよいですか?私はinvokeLaterを使用しますか? –
@JamesPoulson:私の答えに編集を参照してください。 –
- 1. 長期実行Oracle DB問合せのシミュレーション
- 2. ASP.NET MVC 3とJQueryの長期実行操作
- 3. コアデータを使用する長期実行フォアグラウンド操作のベストプラクティス?
- 4. 非同期操作の実行方法
- 5. C#のWinフォームは:非同期で実行時間の長い操作が
- 6. 長時間実行する操作を実行するには?
- 7. ステートレスEJBメソッドのタイマーを使用して長期実行操作をタイムアウトする
- 8. MOSS公開インフラストラクチャを使用した長期実行操作のサポート
- 9. 非同期操作 - 操作が長時間実行されているかどうかを確認する
- 10. 長期実行タスクの実行方法
- 11. oracleで操作へのマージを実行中の長い実行時間
- 12. フォース前に再描画の実行時間の長い操作
- 13. 同期方式で長い非同期操作を実装する
- 14. 非同期操作を実行するカスタムWindowsワークフローアクティビティの実装
- 15. 長時間実行中の操作がメインスレッドで実行されています
- 16. aws codeseploy長期実行プロセス
- 17. AJAXプログレスバーで長時間実行されるPlone操作
- 18. 長時間実行するWebサービス操作をホストする
- 19. HTTPリクエストで長い操作を実行できますか?
- 20. 操作の実行(R)
- 21. サーバの初期化時にモデル操作を実行します。
- 22. 長期実行PL/SQLブロックの監視
- 23. sqlalchemy:長期実行クエリの停止
- 24. 長期実行サブプロセスの停止
- 25. Omnet ++:inetでシミュレーションを実行
- 26. Androidファイル操作を非同期で実行する
- 27. アンドロイドアプリアイコンの長押し操作
- 28. レルム:MVCCおよび長期実行トランザクション
- 29. 長期実行タスク - ベストプラクティス - ASP.NET 4.0、C#
- 30. 長期実行タスクとスレッド - パフォーマンス
長時間実行されているプロセスをシミュレートするには、任意のメソッド内で 'Thread.sleep(millis) 'を使用するだけです。それは簡単です:-) – home
@home、それはそれほど簡単ではありません。あなたはEDTで寝ることができません。 – mre
あなたはこれを意味しますか?:http://stackoverflow.com/questions/1389586/simulation-of-long-running-oracle-db-query –