У меня есть приложение winform.Каждые несколько секунд я проверяю некоторые файлы журнала, считываю новые данные и вставляю новые данные в БД.
Когда я запускаю приложение в течение часа 1/2, я получаю StackOverflowException
.За весь этот период в файлах журналов не было новых данных, поэтому в БД не было добавлено ничего нового.
Код с ошибкой здесь ...
if (pictureBox == null)
{
continue;
}
if (pictureBox.InvokeRequired)
{
var toolTip = new ToolTip();
GameServer tempGameFile = gameServer;
pictureBox.Invoke(new MethodInvoker(
() => toolTip.SetToolTip(pictureBox,
string.Format(
"{0} : Last Checked: {1}; Last Updated: {2}",
tempGameFile.Name,
tempGameFile.CheckedOn.ToLongTimeString(),
tempGameFile.UpdatedOn.HasValue
?
tempGameFile.UpdatedOn.Value.ToLongTimeString()
: "-No Date Set-"))));
}
pictureBox.Image = Resources.RedButton;
и pictureBox.Invoke(..)
выдает эту ошибку.
Так что ... я не уверен, как я могу отрицать это, чтобы выяснить, что происходит?Есть какие-нибудь предложения?
ОБНОВЛЕНИЕ
Пытаясь предложить Дмитрий Я запустил профиль памяти профилировщика ANTS ... и быстро взглянул на вещи ...быть много экземпляров элементов управления ToolTip.
Это сводка списка классов через 20 минут.
Много EventHandlers (я что-то не выпускаю?)
И еще есть несколько всплывающих подсказок ...
Вот скриншот всех экземпляров и вот скриншот одногоПодсказка управления графиком / картой .. которую я не знаю, как читать blush