私は物理エンジンとディスプレイを備えた小さなアプリケーションを構築しました。ディスプレイは、物理エンジンを扱うコントローラーに接続されています(実際はコントローラーを処理するビューモデルですが、詳細)。疑似リアルタイムスレッド
現在のところコントローラはbegin-invokeでアクティブになり、キャンセルトークンで非アクティブ化され、endinvokeによってレアされるデリゲートです。ラムダの内部では、UIを最新の状態に保つPropertyChanged(INotifyPropertyChangedに引っかかります)をブラシします。
私はBeginInvokeメソッドが別のスレッドではなくタスクをアクティブにすることを理解しています(私のコンピュータでは別のスレッドをアクティブにしますが、これは私が行った読書の保証ではなく、スレッドプールまでですタスクを完了したいと思っています)、これは私が行ったすべてのテストからうまくいきます。ラムダは、CancellationTokenが殺されるまで完了しません。それは睡眠と更新を持っています(それはリアルタイムの物理エンジンをシミュレートするようなものです...それは原油ですが、リアルタイムで正確な感覚を必要としません)。
私が持っている質問は、他のコンピュータでも動作するのでしょうか、明示的なスレッドに切り替えて開始し、取り消すべきですか?私が考えているシナリオは、1つのコアプロセッサであり、2番目のタスクでプロセッサ時間が大幅に短縮され、許容できない不正確なモデルになる可能性があります(つまり、マイクロ秒よりもむしろスイッチングする前にミリ秒待っていますか?それとも私がやっていないより良い方法ですか?
これは.NETですか?そうであれば、使用しているプログラミング言語とともに質問にタグを付けることができます。 –