問題タブ [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.
c# - シリアルポートが接続しようとするとC#UIがフリーズする
シリアルポート接続中にC#インターフェイスがフリーズする理由について質問があります。有効なシリアルポート(期待するバイト数を送信するデバイス)に接続しても、インターフェイスがフリーズしません。ただし、ユーザーがコンピューターの別のポートまたはデバイスの間違ったモデルに接続しようとすると、プログラムは「?」を送信したときにデータを返しません。文字などの最初の行:message [i] =(byte)port.BaseStream.ReadByte(); タイムアウトが発生し、キャッチに該当して3回接続を試みてから、接続の失敗をユーザーに警告します。UIは、3回の試行が行われた後は正常に機能しますが、実行中はUIが応答しません。何か案は?よろしくお願いします。以下は私のコードです。
上記は、10ミリ秒ごとに実行するように設定されたDispatcherTimerオブジェクトを介して継続的に実行される私のコードです。
c# - 日時になったらメッセージボックスを表示しますか?
DateTime について助けが必要です。
アプリケーションで DateTime が終了しているかどうかを確認し、メッセージ ボックスが表示されるようにします。
どうやってそれを書くのですか?
コード:
wpf - ディスパッチャーを使用しない WPF 現在時刻
DispatcherTimer を使用せずに現在の時刻を表示する他のオプションはありますか? 残念ながら、アプリは低速の PC で実行する必要があり、DispatcherTimer はメモリ使用量を継続的に増加させます。私は WPF パフォーマンス プロファイリング ツールでそれを確認しましたが、それは本当です - 1 秒のタイムスパンでの CPU 使用率は ~5-15% です。そして、クラスを使用して時間値を取得し、それをラベルに表示するため、表示するメソッドが xaml で生成されたコントロールなしで実行できると便利です。
ありがとう!
@編集:
そしてティックするとき:
c# - バックグラウンド エージェントで発生した無効なクロススレッド アクセス
RSS リーダーを構築しています。新しいフィード アイテムをチェックする定期的なタスクを追加したいと考えています。新しいアイテムが見つかった場合は、それに応じてアプリのライブ タイルが更新されます。
私が遭遇した問題は、DownloadStringAsync() メソッドを使用してフィードをダウンロードし、フィードに新しいアイテムが含まれているかどうかを確認していることです。そのため、ダウンロード プロセスに 20 秒 (アクションを完了するために定期的なタスクが与えられる時間) よりも長くかかる場合があります。
私が望むのは、20 秒のアクションの後、エージェントが OS によって終了される前に NotifyComplete() メソッドが確実に呼び出されるようにすることだけです。このため、ティック イベントで NotifyComplete() メソッドを呼び出す、15 秒間隔のディスパッチャー タイマーを登録したいと考えています。
しかし、ディスパッチャ タイマーを宣言して使用しようとすると、無効なクロススレッド アクセス エラーが発生しました。私の定期的なタスク コードには、次のものが含まれます。
問題は、なぜこれが起こっているのか、どうすれば問題を解決できるのかということです。前もって感謝します!
c# - 別のスレッドの開始が完了するまでスレッドを待機させる方法
別のスレッドで実行するメソッドを呼び出す DispatcherTimer を使用しています。非効率性について本当に心配する必要のない単純なプログラムを実行しています。DispatcherTimer スレッドが UI を変更できるようにしながら、UI スレッドが DispatcherTimer の終了を待機するようにするにはどうすればよいですか?
*私はこれが半分繰り返されるかもしれないことを理解していますが、私が見た例はケース固有のものです. ありがとう
基本的に、selPeople[x].IsCheck = false の前に最終的な x 値を取得するには TimerTick が必要です。これは、リストから選択されたばかりの項目を削除することがポイントであるためです。
c# - DispatcherTimer が wpf アプリで起動しない
最近、WPF コードをリファクタリングしたところ、DispatcherTimer が起動しなくなりました。ここで他の同様の投稿を確認しましたが、それらはすべて、私が試したディスパッチャースレッドセットが間違っていることに問題があるようでした...
私のコードは次のようになります。
(現在のクラスはメインの Window オブジェクトで、ファイルのコピー中は非表示にします。CopyFilesWindow は、私が変更したコントロールを含む単純な Xaml ウィンドウです。CopyFilesWindow 自体はまったく何もしません。)
基本的に、私は長時間実行されるタスク (大量の大きなファイルをコピーする) を待ちます。私の DispatcherTimer は、dispatcherTimer_Tick の進行状況を更新することになっています。ただし、その関数にブレークポイントを設定しましたが、ヒットしません。
また、次のようにコンストラクターを使用して Dispatcher を設定しようとしました。
しかし、これらのどちらも動作を変更しません...それでも起動しません。
ここで何が間違っていますか?