使用线程(c#winforms)来提高矩阵样式应用程序的性能是一种好习惯吗?
It is good practice to use threads(c# winforms) to improve performance for a matrix style application?
我正在创建一个矩阵样式的应用程序。它是 Microsoft Dynamics Nav 2013 的 controlAddIn。基本上我在面板内创建了很多文本框。所以我有行和列以及它们交叉的单元格(见下图)。
我不知道当控件数量越来越多时如何提高性能。有一种方法可以释放 space 或内存,或者只是防止出现故障??
我想使用 dispose(),Controls.Clear() ...但仍然遇到一些问题,并且破坏了 Dynamics NAV...
Microsoft Dynamics Nav 使用我从生成项目中获得的 .dll。它通过从 DynamicsNav 调用的 8 个函数与数据库交互。每次我做和事件,比如点击我调用 EventControlAddIn,并清除主面板内的所有控件并重新生成所有内容...所以问题是当我有很多控件时需要一段时间...
我想过做多线程,但我从来没有用过这个,而且在这个问题上仍然有点生疏,所以欢迎任何想法
感谢您的帮助
一种提高性能的方法是重用您在矩阵内部使用的控件,这样您在任何时候都只会激活 NxM 个控件,其中 N 是矩阵的高度,M 是矩阵的宽度(可见数据区域)。
根据数据,您可能希望使用异步操作来防止 UI 滞后。一般来说,实现异步数据检索是一个很好的做法,这样当用户等待信息出现在矩阵上时,他们不必等待所有信息出现,而是在信息出现时进行更新。
如果您真的想要出色的性能,您可能希望通过从 System.Windows.Forms.Control 派生并自己实现所有呈现逻辑来实现自己的数据网格。
我正在创建一个矩阵样式的应用程序。它是 Microsoft Dynamics Nav 2013 的 controlAddIn。基本上我在面板内创建了很多文本框。所以我有行和列以及它们交叉的单元格(见下图)。
我不知道当控件数量越来越多时如何提高性能。有一种方法可以释放 space 或内存,或者只是防止出现故障??
我想使用 dispose(),Controls.Clear() ...但仍然遇到一些问题,并且破坏了 Dynamics NAV...
Microsoft Dynamics Nav 使用我从生成项目中获得的 .dll。它通过从 DynamicsNav 调用的 8 个函数与数据库交互。每次我做和事件,比如点击我调用 EventControlAddIn,并清除主面板内的所有控件并重新生成所有内容...所以问题是当我有很多控件时需要一段时间...
我想过做多线程,但我从来没有用过这个,而且在这个问题上仍然有点生疏,所以欢迎任何想法
感谢您的帮助
一种提高性能的方法是重用您在矩阵内部使用的控件,这样您在任何时候都只会激活 NxM 个控件,其中 N 是矩阵的高度,M 是矩阵的宽度(可见数据区域)。
根据数据,您可能希望使用异步操作来防止 UI 滞后。一般来说,实现异步数据检索是一个很好的做法,这样当用户等待信息出现在矩阵上时,他们不必等待所有信息出现,而是在信息出现时进行更新。
如果您真的想要出色的性能,您可能希望通过从 System.Windows.Forms.Control 派生并自己实现所有呈现逻辑来实现自己的数据网格。