Переполнение стека в многопоточном приложении - PullRequest
1 голос
/ 04 октября 2010

Надеюсь, кто-нибудь может мне немного помочь.У меня есть приложение ac #, работающее под .NET 2.0.Это странное приложение.Он прослушивает в сети любые UDP-пакеты.Когда он получает пакет UDP с первыми 8 байтами, указывающими «Catalina», он анализирует пакет и затем отправляет информацию в соответствующее соединение сокетов (асинхронные соединения сокетов).Если имеется 8 клиентских терминалов, то будет 8 дополнительных сокетов, на которые будет направлена ​​информация дешифрованного пакета UDP.На самом деле только тот, для которого предназначен пакет.Мое приложение может работать в течение одного часа или, может быть, трех часов, но в итоге я получаю переполнение стека, обычно в msCorLib.dll.Если я скажу Visual Studio остановить переполнение стека, это происходит в разных местах.Я действительно не вижу (или не могу найти) никаких рекурсивных циклов, и, как я уже сказал, приложение будет работать в течение некоторого времени, прежде чем оно выпадет.В основном я ищу утилиту, которую я могу купить, чтобы помочь мне выяснить, почему это происходит.Мне никогда не приходилось копать так глубоко в проблему, которую так трудно найти или так много двигать.Кто-нибудь знает какие-нибудь утилиты, которые могут мне помочь?

Большое спасибо заранее за любой совет, Майк

...