問題タブ [runnable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Runnable への暗黙の変換?
演習として、関数を受け入れて を生成する暗黙的な変換を作成しようとしましたRunnable
。そうすれば、Runnable
オブジェクトを受け入れる Java メソッドを呼び出して、それらをクロージャのように使用できます。
暗黙の変換は簡単です:
しかし、私はそれを呼び出す方法がわかりません。一度に評価することなく、Unit を返す引数なしの関数をどのように渡しますか? たとえば、次のように「12」を出力したいのですprint("2")
が、一度に評価されるため、代わりに「21」を出力します。
print("2")
一度に評価されるものではなく、関数の本体として扱うようにコンパイラに指示するにはどうすればよいですか? 私が試したいくつかの可能性、
また
は正当な構文ではありません。
java - JProgressBarを更新します
プログレスバーを更新できません...これは私のコードです
プログレスバーの状態は、スレッドの最後でのみ更新されます。誰かが私を助けることができますか?
android - Android でのゲーム アルゴリズムのスケルトンの作成
次の点について助けが必要です。
- 私は次のクラスを持っています:
public class Game extends Activity {...
...}
私の質問は次のとおりです。
- View を作成する場所と方法 (View を拡張する別のクラスを使用するか...)
- スレッドを使用できるように Runnable インターフェイスを実装する場所と方法を教えてください。
- 3 つすべて (Activity、View、Run() メソッド) をどこでどのように接続するのですか?
どんな助けでも大歓迎です。
android - 拡張アクティビティからの Run メソッドは、Runnable を拡張します
実行中の Runnable 内からメソッドを呼び出そうとしています。文字列が入力されるのを待ち、文字列に依存するとき (文字列はコマンドとして機能します)、メソッドを呼び出し、その中の whats を実行することになっています。
android - aSyncTask を使用してビットマップの読み込みを最適化する
大きなビットマップを構成する多数のタイルをロードするシングル スレッド アプリを最適化しようとしています。新しいタイルをシステム メモリにロードするときに、アプリの動作が非常に遅くなっていました。この目的で非同期タスクを使用しようとしています。アプリは、onDraw によって呼び出されるメソッドで左上にあるタイルを検出し、Assets フォルダーにビットマップのパスを含む文字列を作成し、描画する前にビットマップが null かどうかを確認します。null の場合は、メモリにロードします。私のアイデアは、DoBackground でビットマップを処理し、postExecute でビューの無効化をトリガーして、非同期に読み込まれたビットマップを表示することでした。いくつかの質問:
1.) ビットマップごとに aSync タスクを実行できますか? (このステートメント: new myAsyncTaskManager().execute(bitmapPath); そうでない場合、aSync が行う唯一のことはビットマップをメモリにロードすることだけなので、最善の方法は何でしょうか?
2.) ビットマップの読み込みが遅すぎる場合、優先度 aSyncTask を設定することは可能ですか?
3.) これを行うためのより良い方法はありますか? アプリの速度を低下させるのはキャンバスの描画ではなく、ビットマップの読み込みであることは確かです。
私の一時的な aSync コード:
java - runnable/TimerTask から文字列を取得する
15 分ごとに URL を解析するタイマー (タイマー タスク) を実装しました。私が作成したオブジェクトはそのデータを取得します。後でそれを使用して、画面にデータを表示します。
今、実行可能なオブジェクト/a String=Object.toString() を取得しようとすると、null ポインター例外と致命的なエラーが発生します。
私の質問は、それを行うために他の手法を使用することが可能かどうか、またはオブジェクトがランナブルの外に存在しなくなり、それについてできることはあまりないかどうかです。タイマー/ランナブルを実装する別の方法は?
どうもありがとう
ここに問題がある私のコードのほとんどがあります
java - 前のスレッドが終了していない場合はスレッドをキューに入れる
私は単純なビデオ マニピュレータを作成しようとしているので、1 秒に数回、現在のフレームを処理するために新しいスレッド (現在 Runnable を実装している) を開始する必要がありますが、各スレッドが終了するまでにかかる時間の保証はありません。一度に実行できるスレッドの数をコンピューター上のプロセッサーの数に制限したい:
ただし、フレームがドロップされないように、作成されたすべてのスレッドが順番に実行されることを保証する必要があります。
また、ユーザーがジョブをキャンセルしたときに実行するために残っているスレッドの数に基づいて、処理が完了するまでにかかる時間をユーザーに示して、予告編のないビデオ ファイルになってしまわないようにしたいと思います。
これは、futureTask、Exector、または ExecutorService の任意の組み合わせを使用して可能でしょうか?
ありがとう。
編集:
こんにちは皆さん、申し訳ありません。私が実際にやろうとしているのは、フレームを取得し、画像操作を実行してから、編集した映像を新しいファイルに保存することです。現時点では、再生中にこれを行っているため、タイマーによって呼び出されたときに各フレームが操作され、タイマーはスレッドを起動して画像をできるだけ早く処理しますが、今回行われる操作の数によって異なります。
次に、処理が間隔よりも長くかかる場合、最大効率的な数のスレッドのみが処理に使用され、この制限に達した後に作成されたスレッドは引き続き処理され、ドロップまたはガベージ コレクションされないことを確認したいと考えていました。 .
最初の 3 つのコメントを読むと、これはおそらく効率の悪い方法であることがわかります。UI の応答性を維持するためだけに 1 つのスレッドを使用するとうまくいくと思いますが、スレッドに画像を追加し続ける方法がわかりません。巨大なリストを使用せずに処理します。私はそれが次のようなものになると仮定しています:
メインクラスでは:
実行可能なクラスで:
これは正しいです?
編集2:
だから、これは私がこれまで持っているものです:
これは、画像処理が単純な場合はうまく機能しますが、もう少し複雑になると、すぐに数十の同時スレッドが実行しようとすることに遭遇します。フレームごとに書き込み時間が指定されているため、フレームを順不同で書き込むと正しい場所に配置されると思うため、この場合の順序が特に重要かどうかはわかりませんが、これにはテストが必要です。
java - メソッド(実行可能)タイマーからオブジェクトを取得する
15 分ごとに URL を解析するタイマー (Timer
タスク) を実装しました。というオブジェクトParsedExampleDataSet
がそのデータを取得します。
そのオブジェクトまたは実行可能なオブジェクトを取得しようとすると、null ポインター例外と致命的なエラーが発生します。String=Object.toString()
どうすれば取得できますか? 私が試すことができる別の実装はありますか? ランナブル内で動作しないのはなぜgetBaseContext()
ですか?
ここに問題がある私のコードのほとんどがあります。また、問題が発生した場所に 2 つのコメントを追加しました。
android - postDelayedによって追加されたハンドラーオブジェクトからランナブルを削除するにはどうすればよいですか?
「開く」アニメーションがあり、少し遅れて「閉じる」Handler.postDelayed(Runnable, delay)
アニメーションをトリガーするために使用しています。ただし、開いてから閉じるまでの間に、クリックによってトリガーされる別のアニメーションが存在する可能性があります。
私の質問は、ハンドラーの「閉じる」アニメーションをキャンセルするにはどうすればよいですか?
android - このスレッドは安全ですか?
私は Android 用のアプリケーションを作成しており、特定の情報を処理するためにワーカー スレッドを使用しています。私のコードを読んだ後、それがスレッドセーフかどうかわかりません。
私は自分のコードの簡略版を書きましたHandler
。メイン スレッドとの通信に使用されるオブジェクトと、明らかにプロセス自体を省略しました。
これは、これに似たものを実行することによって呼び出されます。
このコードはmyString
、関数で変更 (メイン スレッドで宣言) しているため、スレッド セーフではありませんrun()
か?