.NET で何かをすばやく描画するのに問題があります。特に時間がかかるとは思いませんが、試したすべてのマシンで深刻な問題が発生します。これは、C# を使用して vs2008 .NET に実装されています (C++ のものもありますが、図面には関係ありません)。
私には 3 つの画面があり、ユーザーは遅延なく画面を切り替えることができるはずです。最初の画面には、4 つのボタン、2 つのボタンとそれぞれ 6 つのラベルで構成される 8 つのユーザー コントロール、テキスト フィールド、およびドロップダウン ボックスがあります。そこまでとは思えません。
2 番目の画面には、4 つのラベル、6 つのボタン、6 つのボタンを持つ 2 つのコントロール、1 つの opengl 描画コンテキスト、およびそれぞれ約 10 個のラベルがあります。
3 番目の画面には、1 つの OpenGL コンテキストと 10 個のボタンがあります。
任意の画面から任意の画面への切り替えには、文字通り約 1 秒かかります。たとえば、2 番目の画面から最初の画面に切り替えると、アプリケーション全体が空白になり、背景画面が表示されてから、最初の画面が描画されます。多くの場合、画面は断片的に描かれます。まるで機械がスウェーデンの工場で繊細でおいしい文字を意図的に手作りし、1 つずつ画面に出荷しているかのようです。私は誇張していますが、スウェーデン人がこの再描画ほど遅いとは思わないので、それを明確にしたいと思います.
1 番目と 2 番目の画面はメモリに描画され、そこに保存されます。表示と非表示を切り替えるには、'.Hide()' と '.Show()' だけを使用します。ダブルバッファリングは問題ではないようです。3 番目の画面は毎回新たに描画され、1 番目と 2 番目の画面と同じ時間がかかるように見えます。
何かご意見は?何が起こっているのでしょうか?どうすれば追跡できますか?
ありがとう!
編集:C++処理などは独自のスレッドで行われることを追加する必要があります。操作の結果を画面に描画するための MethodInvoke がときどきありますが、この問題は、関数を呼び出すことなく、ボタンを押してある画面から次の画面に移動するだけで発生します。