0

私は非常に高性能なWinFormsアプリケーションで作業しています。サーバーからデータを取得し、これらの結果をGUIのテキストボックスに表示します。これらのテキストボックスをコード内のいくつかの変数にバインドするか、コードにtextbox1.text = dataのようなものを含める方が、パフォーマンスの面で優れているでしょうか。またはそれはまったく同じです

4

3 に答える 3

3

一部のビューにデータを入力する場合、パフォーマンスは(原則として)主な問題ではありません。

バインディングは、開発とさらなるメンテナンスの観点から便利です。ユーザーが値を編集した後、値をデータソースに戻すことを忘れることはできません。また、それらはデータ検証と緊密に結合されています。実際、WPFのような高度なバインディングエンジンは、データバインディングをGUIでデータを操作するための唯一の簡単な方法にします。

WinFormsのバインディングエンジンは、WPFよりも(機能の観点から)単純ですが、それでも。よりも優れていtextbox1.text = dataます。

于 2012-09-18T11:26:40.777 に答える
1

それは本当に重要ではありません。重要なのは、データをフェッチする方法です。データベースクエリのような遅い操作がある場合は、バックグラウンドスレッドで実行できます。おそらく、この操作の実行中にメインUIスレッドがフリーズしないようにBackgroundWorkerを使用します。

于 2012-09-18T11:24:38.993 に答える
0

何を出力しているのか正確にはわかりませんが、これはパフォーマンスの考慮に役立つ可能性があります。

テキストボックスや文字列などにデータ/テキストを繰り返し追加する(たとえば、textBox.Text + = "message"などのエラーメッセージをログに記録する場合)はO(n 2操作です。つまり、出力が大きくなるほど、より劇的なスローダウンが表示されます

さらに、出力用のテキストを繰り返し追加する私の実験では、

textBox.Text += "message";

文字列に直接追加してから実行するよりも約3200倍遅くなります(反復の最後に)

textBox.Text = theString;

使用する

textBox.AppendText("message");

さらに遅くなりました(約9600倍)。

于 2013-02-21T15:47:11.843 に答える