Я написал приложение для клиентского сервера C# и позволю ему работать всю ночь, а когда я хочу посмотреть, все еще работает, я обнаружил ошибку на сервере. к сожалению, приложение является большим, чтобы вставить в какой-то код, но я получаю сообщение об ошибке приОшибка Создание дескриптора окна
Application.Run (Form1)
в Program.cs, что говорит
Первый два MessageBoxes можно пренебречь (слева направо), потому что они должны показать, а другой
делегат бутон не может быть выполнена
приходит от этого кода и Маи есть часть в этой ошибке (этот код в Form1.cs):
public void setButonState(inout_buton b, bool t, int q,int contor)
{
try
{
if (b.InvokeRequired)
{
Callback d = new Callback(setButonState);
this.Invoke(d, new object[] { b, t, q, contor });
}
else
{
b.Enabled = t;
if (q == 0) b.setBackgroundGrey();
if (q == 1) b.setBackgroundGreen();
if (q == 2) b.setBackgroundRed();
if (q == 3) b.setBackgroundOrange();
b.setSecondaryLabel(contor);
}
}
catch { new ShowMessageBox("FORM1 : delegate buton couldn't be executed"); }
}
Мой вопрос: в каких условиях показывают эти ошибки?
так, если я хотел бы использовать метод Dispose() он будет работать? и как я могу расширить этот предел 10000? – Alex
Исправьте ошибку в коде, не ищите обходной путь, который приведет к сбою вашей программы позже. Десять тысяч окон - безумно большое количество окон. Несколько дюжин - это нормально. Счетчик объектов USER - отличная диагностика. –
если я вызову периодичность GC.Collect(), это поможет? – Alex