ошибка создания дескриптора окна, когда элементы управления flowlayoutpanel очищаются в c#? - PullRequest
0 голосов
/ 13 июля 2020

У меня есть одна проблема, когда winform открывается долгое время, если я отправил другой запрос, выдает ошибку создания дескриптора окна для очистки панели управления flowlayout:

 flw.Invoke(new Action(() => flw.Controls.Clear()));

Ошибка: ERROR OnExampleDTOReceived: Ошибка создания дескриптора окна .-- > -> System.ComponentModel.Win32Exception: ошибка создания дескриптора окна. в System. Windows .Forms.Control.MarshaledInvoke (вызывающий элемент управления, метод делегата, аргументы Object [], логический синхронный) в System. Windows .Forms.Control.Invoke (метод делегата, аргументы Object []) в PrxCustScr .Sockets.Listener.EndTrx (строковые данные, FlowLayoutPanel flw) в \ Source \ Workspaces \ TestApplications \ PrxCustScr \ PrxCustScr \ Sockets \ Listener.cs: строка 689 в PrxCustScr.Sockets.Listener.OnExampleDTOReceived (сообщение String) в \ Sourcespace \ TestApplications \ PrxCustScr \ PrxCustScr \ Sockets \ Listener.cs: строка 273 -> в System. Windows .Forms.Control.MarshaledInvoke (вызывающий элемент управления, метод делегата, аргументы Object [], логический синхронный) в System. Windows .Forms.Control.Invoke (метод делегата, аргументы Object []) в PrxCustScr.Sockets.Listener.EndTrx (строковые данные, FlowLayoutPanel flw) в \ Source \ Workspaces \ TestApplications \ PrxCustScr \ PrxCustScr \ Sockets \ Listener.cs: line 689 в PrxCustScr.Sockets.Listener.OnExampleDTOReceived (строковое сообщение) в \ Source \ Workspaces \ TestApplications \ PrxCustScr \ PrxCustScr \ Sockets \ Listen er.cs: строка 273

Как решить эту проблему?

1 Ответ

0 голосов
/ 16 июля 2020

Я решил с помощью этого кода:

http://www.codeease.com/windows-form-flowlayoutpanel-memory-leak.html

for(int i = flowlayoutpanel1.Controls.Count-1; i >= 0; --i)
{ 
   var ctl = flowlayoutpanel1.Controls[i];
    ctl.Dispose();
}
...