我在一个非常高性能的WinForms应用程序中工作,我从服务器获取一些数据,并在我的GUI上的文本框中显示这些结果。将这些文本框绑定到我的代码中的某些变量,或者只是在我的代码中使用textbox1.text = data这样会更好,性能更好吗?或者它是一样的
答案 0 :(得分:3)
当您使用数据填充某些视图时,性能不是您的主要问题(通常)。
从开发和进一步维护的角度来看,绑定是方便的。在用户编辑值后,它们不允许您忘记将值重新放回数据源。此外,他们与数据验证紧密结合。实际上,高级绑定引擎(如WPF的绑定引擎)使得数据绑定成为在GUI中处理数据的唯一无痛方式。
WinForms中的绑定引擎比在WPF中更简单(从功能的角度来看),但它仍然比textbox1.text = data
更好。
答案 1 :(得分:1)
这并不重要。重要的是获取数据的方式。如果您有一些像数据库查询这样的慢操作,您可以在后台线程中执行它们,可能使用BackgroundWorker来避免在此操作运行时冻结主UI线程。
答案 2 :(得分:0)
我不确定您输出的确切内容,但这可能有助于提高性能:
迭代地将数据/文本附加到文本框或字符串之类的内容(例如,在使用textBox.Text + =“message”等记录错误消息的情况下)是 O(n 2 )操作,意思是输出越大,你看到的减速就越显着。
此外,在我的迭代添加输出文本的实验中,
textBox.Text += "message";
比直接附加到字符串然后执行(在迭代结束时)慢大约3200倍
textBox.Text = theString;
使用
textBox.AppendText("message");
甚至更慢(大约9600次)。