gpt4 book ai didi

c# - 解密过程中 Winforms 数据 GridView 滞后

转载 作者:行者123 更新时间:2023-11-29 20:32:40 27 4
gpt4 key购买 nike

我必须为我的办公室工作构建一些数据存储应用程序。通过这个应用程序,我计划将 MAC 地址和 Windows 被许可人 key 存储在 Mysql 数据库中。我决定以加密方式存储 MAC 地址和 Windows key ,而不是纯文本。为此,我使用这种加密方法

C# encryption

我的问题是,当我最终在数据 GridView 中解密数据时,它开始严重滞后。即使填充数据以及滚动也是如此。

这是我用来解密数据 GridView 数据的代码。

private void pc_count_grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 3)
{
e.Value = Decrypt(e.Value.ToString());
}

if (e.ColumnIndex == 4)
{
e.Value = Decrypt(e.Value.ToString());
}

}

如何在解密单元格格式数据的同时提高数据 GridView 的性能?

最佳答案

CellFormatting 事件会经常触发,因此您的解密方法将被重复调用,有时是针对相同的数据。这会导致渲染显得缓慢。您应该在从数据存储中检索值时解密这些值,然后绑定(bind)到 DGV。

来自MSDN ,“每次绘制每个单元格时都会发生 CellFormatting 事件,因此在处理此事件时应避免冗长的处理。”

伪代码:

while (r = GetNExtRecordFromMySQL())
{
Foo f = new Foo(r);
f.DecryptedField1 = Decrypt(f.Feild1);
f.DecryptedField2 = Decrypt(f.Field2);
.
.
.
}

// more code

dgv1.Columns[0].Name = "Field1";
dgv1.Columns[0].DataPropertyName = "DecryptedField1";
dgv1.Columns[1].Name = "Field2";
dgv1.Columns[1].DataPropertyName = "DecryptedField2";

关于c# - 解密过程中 Winforms 数据 GridView 滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38956383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com