問題タブ [dispatchertimer]
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.
windows-phone-7 - wp7のタイマーの概念?
この Timer を使用しています。しかし、このタイマーは完全には動作しません。
例:
このタイマーでは、いくつかの問題が発生します。1500ミリ秒前に次のループを実行..
これを比較して、より良いタイマーを知っている人は誰でも。
これを行うためのアイデアを教えてください。
ありがとう。
c# - DispatchTimer - 前の tick がまだ実行中の場合に tick イベントがトリガーされるのを防ぎます
Silverlight アプリには、500 ミリ秒ごとに実行する必要があるコード ブロックがあります。これを実現するために DispatcherTimer を使用する予定です (以下のコードを参照)。
ただし、コード ブロックの実行に 500 ミリ秒以上かかる場合があります (コード ブロックは Web サービスの呼び出しを行います)。通話が現在進行中の場合、DispatcherTimer が別のイベントをトリガーしないようにするにはどうすればよいですか? どのようなオプションがあり、最良の方法は何ですか? ロックを使用していますか?
c# - 独自の匿名TickイベントハンドラーでDispatcherTimerを停止する
次のようなことをしても安全ですか?
c# - C#のタイマーまたはディスパッチャータイマーを使用して、x秒ごとにリストまたは辞書を列挙します
3 つの値とキーのペアを持つ辞書があるとします。
このディクショナリを反復処理したい、ディスパッチャータイマー (またはタイマー) が 3 秒ごとにディクショナリの値で displayText を呼び出すようにしたい。それ、どうやったら出来るの?
アップデート:
Thread.Sleep(XXX) を使用できません。スレッドをブロックできません。私はバックグラウンドで他のことを行っていますが、これをスピンアウトしてスレッドをあちこちに配置することはできません。
wpf - DistpatcherTimerを使用してBackgroundWorkerタスクを繰り返す
私はこれに取り組むための最良の方法を見つけようとしています。
タイマーでソケット接続を行うために使用されているBackgroundWorkerがあります。
TCP接続を確立するBackgroundWorkerスレッドを開始し、データの読み取り/書き込みを行ってから、接続を閉じて2秒ごとに繰り返します。
接続しているサーバーがデータを送信せず、readByte呼び出しがデータの待機を停止し、プログラムをリセットするまでプロセスを続行できないため、毎回物理的に接続を開閉したい(したがって、 UIとは別のスレッドを使用したい)。
現時点では、2秒間隔でDispatcherTimerを使用してWorker.RunWorkerAsyncを呼び出そうとしています。RunWorkerAsyncが呼び出されると、DoEventsメソッドが実行されます-これは初めて正常に機能しますが、後続のDispatcherTimerティックでは、前のスレッドが閉じていないことがわかります。そのため、RunWorkerAsyncを呼び出すと次のようになります。
「このBackgroundWorkerは現在ビジーであり、複数のタスクを同時に実行することはできません」
これを達成するための最良の方法は何ですか?
もっと良い方法はありますか?
編集:それについて考えます。どういうわけかウォッチドッグを組み込むことができれば良いので、BackgroundWorkerスレッドが2秒以上実行されていることがわかった場合、スレッドがtcp接続によって保留されていることを示しているため終了します。
ベン
silverlight - Silverlight で遅延を作成する
ターンベースのシルバーライトゲーム(カードゲーム)を作っています。ターン間を遅らせたい。
Thread.Sleep を試しましたが、UI が停止します。DispatcherTimer を使用しようとしましたが、おかしくなりました。うまくいくこともあれば、スキップすることもあります。
私のコードは、間隔を 3 秒に設定すると DipatcherTimer で完全に動作しますが、間隔を 1 秒に設定すると、いくつかのラウンドをスキップし始めます。
この遅延を作成する別の方法はありますか?
更新: Windows を再起動したところ、しばらくは完全に機能していました。1時間後、コードを変更せずに再試行したところ、スキップし始めました! 理解できません。
windows - DispatcherTimerの優先度を設定するにはどうすればよいですか?
C#でSilverlightを使用してWindowsPhone7用のアプリを作成しています。
DispatcherTimer(DispatcherPriority)オーバーロードへの参照を多数見つけましたが、コードでこれを設定できません(たとえば、timer = new DispatcherTimer(DispatcherPriority)は「DispatcherPriorityは現在のコンテキストに存在しません」と表示します)。
DispatcherTimerがDispatcherTimer(DispatcherPriority)でオーバーロードされていると思いましたが、コードで使用すると、このコンストラクターへの参照が表示されません。優先度を「通常」または「送信」に設定してみたいのですが、優先度のあるDispatcherTimerを実装できないようです。助言がありますか?
windows-phone-7 - タイマーとその状態の保存
私はWindowsPhoneアプリケーションを構築しています(基本的にはゲームですが、XNAを使用していません。Silverlightで十分でした)。グラフィックはDispatcherTimerに基づいて移動しています。私がやりたいのは、基本的には電話がかかってきたらタイマーを止め、電話が終わったらタイマーを再開して、ゲームの状態が失われないようにすることです。
私はで試しました:
しかし、それは機能しませんでした、電話が電話に到着したとき、それは実際にはこの時点に到達しません。誰もがそのような経験をしましたか?
前もって感謝します :)
c# - タイマーとDispatcherTimerのパフォーマンス
特定のシナリオを念頭に置いていませんが、DispatcherTimerではなくTimerを使用したいシナリオを考えていたときに、この質問が頭に浮かびました。
タイマーイベントが発生するたびに計算量の多いタスクを実行する必要があるシナリオでは、 UIに小さな変更を加えると、パフォーマンスの点で次のようになります。
- 通常のタイマーを使用してから、アプリケーションのディスパッチャーを使用してUIを変更します
- DispatcherTimerを使用します(必要に応じて、非同期のバックグラウンドワーカーで計算量の多い作業を行う可能性があります)。
私の推測では、UIスレッドのブロックをできるだけ長く解除しておくと、ユーザーエクスペリエンスが向上すると思います。これが望ましい場合、そのようなシナリオで注意すべき問題はありますか?
編集:
質問が明確ではないと感じたので、作り上げた例ではありますが、具体的なものを追加してみます。
たとえば、2分ごとに大きなファイルを読み取る必要があり、それが終わったら、リストボックスにアイテムを追加する必要があります。ファイルの読み取り/処理に10〜15秒かかるとしましょう。その間、UI作業は行いません。このようなもののための最良のアプローチは何でしょうか?