問題タブ [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.

0 投票する
2 に答える
12506 参照

c# - DispatcherTimer オブジェクトの破棄または強制終了と DispatcherTimer オブジェクトへのアクセス

質問 1: こんにちは、DispatcherTimerのオブジェクトを破棄または強制終了して、同じ名前の新しいオブジェクトを作成する方法はありますか?

質問 2: Public に設定されている場合、他のクラスのDispatcherTimerオブジェクトにアクセスできますか?

0 投票する
0 に答える
334 参照

wpf - ViewModels が同一の位置プロパティを持っている場合、WPF MVVM Canvas UIElement は奇妙なバインディングを持っています

UIElementビューモデルがコレクション内の別のビュー モデルと同じプロパティを持っている場合、そのビュー モデルは間違ったものにバインドされます。

マトリックスをCanvas表すコントロールがあり、このキャンバスは四角形のビュー モデルのコレクションにバインドされています。各四角形のビュー モデルは、モデルの座標を設定する Move() メソッドを持つモデルに関連しています。このメソッドは、マトリックス (x,y) 上のどこに移動するかを四角形に伝えます。

Canvas View Model には DispatcherTimer があり、実行時にキャンバスの ObservableCollection 内のすべての四角形ビュー モデルをループし、MoveModel() メソッドを呼び出します。このメソッドは、参照する四角形モデルの Move メソッドを呼び出します。

これは正常に機能し、キャンバス上のすべての長方形がマトリックス上の隣接するタイルに毎秒移動します。つまり、四角形が別の四角形 (同じ XPos、YPos プロパティを持つビュー モデル) によって既に占有されているタイルに移動するまでです。これが発生すると、両方の四角形が同じビュー モデルにバインドされ (そのように見えます)、タイマーが両方の四角形を実行します。同じ場所に移動します。したがって、キャンバス上で 5 つの長方形から始めた場合、最終的にはすべてが結合され、1 つの長方形だけがキャンバス上を移動するようになります。

問題をデバッグすると、四角形が正しく動き回ります。四角形が別の四角形タイルに入った場合、次回の反復では、四角形は単純にタイルの外に移動し、正しく続行されます。

どんな助けでも大歓迎です。

0 投票する
0 に答える
106 参照

silverlight - WP7 Silverlight でのタイマー間隔の短縮

DispatcherTimerメニューに簡単な翻訳アニメーションを適用するために WP7 Silverlight を使用しています。

ここで、ステップの長さを減らすと、移動はスムーズに見えますが、遅くなります。ステップの長さを大きくすると、移動は速く見えますが、滑らかではありません。

解決策は、ステップの長さを小さく保ち、間隔を短くすることです。しかし問題は、エミュレータが 10 ミリ秒以下の間隔で同じ数のステップを作成することです。

と同じ:

では、非常に短い時間ごとに何かを繰り返し発生させる方法/代替手段/解決策はありますか?

0 投票する
1 に答える
1452 参照

c# - ビデオを一時停止して、WPF と C# で別の位置から再生する方法

テスト コードの特定の場所でビデオを一時停止しようとしていますが、まったく別の位置から開始しようとしています。最終的には別のポイントから開始しましたが、再び一時停止すると、登録した最初のインスタンスに戻ります。このコードで何が間違っているのか知りたいです。

CSファイルのコードは

XAMLコードは

0 投票する
1 に答える
235 参照

.net - Global.asax のタイマー

アプリケーションが IIS で開始されたときにタイマーを開始したいと考えています。

Global.asax の Application_Start に最適な場所があると思いますか?

どうもありがとうございました。

0 投票する
1 に答える
438 参照

c# - DispatcherTimerがランダムな時間の後に起動を停止するのはなぜですか?

DispatchTimerを毎秒起動するように正しく設定しました-

問題:そして、それは一定期間正しく発火し、その後は発火を停止します。

追加情報: 今、あなたはそれが何をするのか尋ねるかもしれませんか?OneSecondChecker_Tick()メソッドが実行されている場合はtrueに設定され、実行されていない場合はfalseに設定されるクラスレベル(静的)ブール変数があるため、このメソッドの2つのインスタンスが実行されていません。毎秒発砲するように設定されていても同時に。OneSecondChecker_Tick()が遅延なく実行されることを確認することはアプリケーションの要件です。また、無限ループで実行しようとはしていません。OneSecondChecker_Tick()が実行される前に、テーブル値が更新されているかどうかを確認する2番目のチェックがあります。「一種の」がOneSecondChecker_Tick()に実行を通知するのはそのテーブル値です。そのテーブル値は、別のアプリケーションによって更新されます。

メソッド自体の中で、TPLを使用してスレッドを並行して実行するための呼び出しがあります。それが何か関係があるのか​​どうかはわかりません。

編集 私はまだこれを理解することができませんでした。アプリケーションがフリーズしている可能性があります。しかし、タスクマネージャーはそうは言いません。アプリケーションがタスクマネージャー以外の場所から応答していないかどうかを確認することはできますか?

0 投票する
2 に答える
1352 参照

c# - WPFでのGUIのタイミング更新

Rectanglesxミリ秒ごとに異なる色(多次元配列に格納されている)を表示したいWPFキャンバスがあります。

これは機能しますが、MainWindowコンストラクターにあるため、リアルタイムで更新されません。

明らかに、長方形はGUIスレッドで作成する必要がTimerありますが、色を変更するためにを作成すると、別のスレッドになります。

値の多次元配列を作成し、その値をRectangle配列の色にバインドして、別のスレッドからそれらにアクセスできるようにすることはできますか?それを行う場合、GUIスレッドに再描画するように指示するにはどうすればよいですか?

コンストラクターでこれが発生しないように、ユーザーが最初にクリックするボタンを使用する方が簡単かもしれません。

EDIT:

うまくいきましたDispatcherTimer。MSがこれのために別のクラスを持っている理由は私を超えています。

ここに画像の説明を入力してください

これが私がそれを使用したソースです。

0 投票する
1 に答える
14491 参照

c# - WPFでDispatcherTimerイベントをスムーズにする方法は?

私のWPFアプリケーションでは、ユーザーがボタンを押して3Dモデルのスムーズな回転を開始し、ボタンを離して回転を停止します。

これを行うには、DispatcherTimerを作成します。

そして、ボタンが押されたtimer.Start()ときに電話をかけ、ボタンを離したときに電話をかけますtimer.Stop()

このtimer_Tick関数は、モデルの回転を変更します。

私が気付いたのは、モデルはほとんどの部分でスムーズに回転しますが、多くの場合、フリーズして途切れ、さまざまな時間、場合によっては最大1/4秒の間一時停止します。

これをスムーズにする方法はありますか?DispatcherTimerを使用することで(たとえば、System.Timers.Timerとは対照的に)、コールバックがUIスレッドで発生することを理解しています。しかし、ラインを実行するには、UIの脅威にさらされている必要があります

他のスレッドでタイマーコールバックを取得するさまざまな方法について読んだことがあります。しかし、最終的には、その行を呼び出すためにUIスレッドと同期する必要があるようです。Invoke()を使用して、たとえばSystem.Timers.TimerコールバックスレッドからUIスレッドにマーシャリングする場合、全体的にスムーズなアニメーションが得られますか?DispatcherTimerと同じようにUIスレッドと同期する必要があるため、そうすべきではないようです。そして、そのことについては、一定の間隔で設定するためのスキームは、UIスレッドに関して同じボートにあるようですよねmodel2.Transform

(おそらく二次的な質問として、私は最初に一時停止の原因を理解しようとしています。私が知る限り、UIスレッドが行っていることは他に重要なことは何もありません。したがって、それらの間に何が起こっているのかわかりません。一時停止します。ガベージコレクション?収集するガベージはそれほど多くないようです。また、一時停止がそれほど極端ではないようです。)

0 投票する
1 に答える
573 参照

c# - 複数の独立したディスパッチャータイマー?

いくつかのタイマーを作成し、x 時間をカウントダウンし、独立して作業し、textBlock で時間を更新し、終了したら何かを実行したいと考えています。

だから私は書いた:

時間は、たとえば 15 秒です。but1をクリックすると時間がカウントダウンされ、t1が10秒のときにbut2をクリックすると、t2も10秒になり、カウントダウンも同じ時間になります。

なぜそれが起こるのですか?それを避ける方法は?

0 投票する
1 に答える
1040 参照

c# - ディスパッチャー タイマー - Windows Phone

Windows Phone で小さなアプリを作成していますが、ディスパッチャー タイマーに問題があります。

ページが読み込まれるたびに、ディスパッチャが別の時間に実行されます。

基本的に、ユーザーがメインページ (カウントダウン) に戻るたびに、ディスパッチャー タイマーが再び実行されます。つまり、カウントダウンが 2 倍の速さで進んでいます。