4

我创建了一个类似记事本的应用程序,如果我将一个 1MB 的文件加载到文本框中,大约需要 1 分钟。Visual Studio 二进制编辑器在几分之一秒内显示行、十六进制和 ascii 版本。他们如何如此快速地将数据输入文本框?谢谢

4

2 回答 2

9

他们只读取了足够的文件来显示屏幕上的可见内容。换句话说,如果你的 UI 一次只能显示 100 个字节,那么你只需要读取 100 个字节来填满屏幕。如果用户滚动窗口,您必须读取额外的字节来填充缺失的部分。

于 2010-04-25T14:06:21.340 回答
0

我并不是要粗鲁。只是希望帮助和澄清:您在回复中提到阅读不是问题,win32 人是问题。但我真的很怀疑。

首先,与任何与 GUI 相关的东西相比,磁盘访问速度非常慢。即使您将编辑框设置为包含大量文本,它本质上也只是一个 memcpy 和一个重绘。

涉及到一些处理。必须遍历字符串才能找到换行符。而且,如果您是自动换行,则必须继续添加下一个字母的宽度,直到超出允许的宽度为止。但是与从光盘读取相比,这两者都非常快。

那么您真的确定这是 GUI 速度问题而不是阅读问题吗?你能提供两者的时间吗?我只是觉得很难相信 GUI 是这里的问题......

于 2010-05-05T07:59:43.923 回答