Dalam .NET, kemas kini yang kerap kepada DataGridView boleh menjadi mahal dari segi pengiraan, terutamanya apabila berurusan dengan set data yang besar dan kadar kemas kini yang tinggi. Artikel ini meneroka masalah kemas kini DataGridView yang perlahan dan menyediakan penyelesaian untuk meningkatkan kecekapan dalam senario pemindahan data pantas.
Contoh kod yang diberikan melibatkan penerimaan data melalui rangkaian dan menghuraikannya ke dalam Jadual Data (Set data). Gunakan pemasa untuk mencetuskan kemas kini pada DataGridView menggunakan Set Data sebagai sumber datanya. Walau bagaimanapun, walaupun selang pemasa ditetapkan kepada 0.1 saat, kadar penyegaran DataGridView masih terhad kepada kira-kira sekali sesaat.
Hambatan ini disebabkan terutamanya oleh proses mengemas kini sumber data DataGridView yang memakan masa. Mengikat semula keseluruhan set data pada setiap kemas kini menyebabkan lukisan semula dan kelipan yang berlebihan.
Untuk mengurangkan masalah ini dan meningkatkan kecekapan kemas kini, anda boleh menggunakan penimbalan berganda untuk DataGridView. Penimbalan berganda mencipta imej luar skrin di mana sebarang perubahan pada penampilan kawalan dipaparkan terlebih dahulu. Setelah perubahan dibuat, imej luar skrin ditukar dengan pantas dengan imej pada skrin, menghasilkan pengalaman visual yang lebih lancar dan responsif.
Terdapat dua cara utama untuk mendayakan Penimbalan Berganda dalam DataGridView:
Kaedah berasaskan subkelas:
<code>public class DBDataGridView : DataGridView { public new bool DoubleBuffered { get { return base.DoubleBuffered; } set { base.DoubleBuffered = value; } } public DBDataGridView() { DoubleBuffered = true; } }</code>
Kaedah berasaskan refleksi:
<code>using System.Reflection; static void SetDoubleBuffer(Control ctl, bool DoubleBuffered) { typeof(Control).InvokeMember("DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetProperty, null, ctl, new object[] { DoubleBuffered }); }</code>
Setelah salah satu daripada dua kaedah ini dilaksanakan, penimbalan berganda boleh dihidupkan untuk DataGridView, meningkatkan prestasi dengan ketara apabila mengemas kini set data yang besar dengan kerap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini DataGridView dengan Cekap dalam .NET dengan Kemas Kini Data Berfrekuensi Tinggi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!