Pagination Control RAM -VerbrauchC#

Ein Treffpunkt für C#-Programmierer
Guest
 Pagination Control RAM -Verbrauch

Post by Guest »

Ich habe ein paginiertes Panel erstellt, das die Liste der Steuerelemente lädt und bestimmte Menge von ihnen auf jeder Seite lädt, damit Sie es wechseln können. Es sieht aus wie SO und verwenden Sie die folgende Logik:
PaginedPanel.cs

Code: Select all

public partial class PaginatedPanel : UserControl
{
public int currentPage { get; set; } = 1;
public int itemsPerPage { get; } = 10;
public int pagesQt { get; set; }

private List items;
public PaginatedPanel()
{
InitializeComponent();
}

public void Add(List controls)
{
items = controls;

pagesQt = (int)Math.Ceiling((decimal)items.Count / itemsPerPage);

LoadPage(currentPage);

pgNumlbl.Text = $"{currentPage}/{pagesQt}";
}

private void LoadPage(int pageNum)
{
ClearPanel();

int startIndex = itemsPerPage * (pageNum - 1);

for (int itemNum = startIndex, numOnPage = 0; numOnPage < itemsPerPage; itemNum++, numOnPage++)
{
if (itemNum > items.Count - 1)
{
break;
}

flowLayoutPanel1.Controls.Add(items[itemNum]);
}
}

private void ClearPanel()
{
//Queue disposeQueue = new Queue();

//foreach (Control control in flowLayoutPanel1.Controls)
//{
//    disposeQueue.Enqueue(control);
//}

flowLayoutPanel1.Controls.Clear();

//foreach (Control control in disposeQueue)
//{
//    control.Dispose();
//}
}

private void prevBtn_Click(object sender, EventArgs e)
{
if (currentPage > 1)
{
currentPage--;
LoadPage(currentPage);
pgNumlbl.Text = $"{currentPage}/{pagesQt}";
}
}

private void nextBtn_Click(object sender, EventArgs e)
{
if (currentPage < pagesQt)
{
currentPage++;
LoadPage(currentPage);
pgNumlbl.Text = $"{currentPage}/{pagesQt}";
}
}
}
< /code>
Ich habe es mit Schaltflächen getestet und es funktioniert in Ordnung, sodass selbst Millionen von Steuerelementen geladen werden, die nicht gefrieren oder so. Eine Sache, die mir jedoch aufgefallen ist, ist, dass das konstante ständige Wechsel von Seiten den RAM -Verbrauch erhöht. Ich habe keine Ahnung warum. Es fügt die gleichen Steuerelemente hinzu und beseitigt, die in der Liste 
gespeichert werden. Irgendwelche Vorschläge, warum das passiert?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post