0

我在一个非常高性能的 WinForms 应用程序中工作,我从服务器获取一些数据并将这些结果显示在我的 GUI 上的文本框中。在性能方面,将这些文本框绑定到我的代码中的某些变量会更好,还是只在我的代码中包含类似 textbox1.text = data 的内容?或者是一样的

4

3 回答 3

3

当您用数据填充某些视图时,性能不是您的主要问题(通常)。

从开发和进一步维护的角度来看,绑定很方便。它们不允许您在用户编辑值后忘记将值放回数据源。此外,它们与数据验证紧密结合。事实上,高级绑定引擎(如 WPF 的引擎)使数据绑定成为在 GUI 中处理数据的唯一轻松方式。

WinForms 中的绑定引擎比 WPF 中的更简单(从它所具有的功能来看),但它仍然比textbox1.text = data.

于 2012-09-18T11:26:40.777 回答
1

这并不重要。重要的是您获取数据的方式。如果您有一些缓慢的操作,例如数据库查询,您可以在后台线程中执行它们,可能使用BackgroundWorker以避免在此操作运行时冻结主 UI 线程。

于 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 回答