Потребление оперативной памяти контроля страницC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Потребление оперативной памяти контроля страниц

Сообщение Anonymous »

Я создал страницу на странице, которая загружает список элементов управления и загружает определенное количество из них на каждой странице, чтобы вы могли ее переключить. Похоже, что и используйте следующую логику:
PaginatedPanel.cs

Код: Выделить всё

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>
Я протестировал его с помощью кнопок, и это работает нормально, поэтому даже миллионы загружаемых элементов управления не делайте форму для замораживания или что -то в этом роде. Но одна вещь, которую я заметил, это то, что постоянное постоянное переключение страниц увеличивает потребление оперативной памяти, я понятия не имею, почему. Он добавляет и удаляет те же элементы управления, которые хранятся в списке элементов 
. Есть предложения, почему это происходит?


Подробнее здесь: https://stackoverflow.com/questions/794 ... onsumption
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Потребление оперативной памяти контроля страниц
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Потребление оперативной памяти контроля страниц
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Потребление оперативной памяти контроля страниц
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Потребление оперативной памяти контроля страниц
    Anonymous » » в форуме C#
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Чрезмерное потребление оперативной памяти процессом Wazuh-Indexer на агенте Proxmox VE
    Anonymous » » в форуме Linux
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»