PDA

Просмотр полной версии : Как определить из-за чего зависает программа?


need_million
12.06.2010, 11:44
Вот почему то зависает программа после 10 минут работы.
есть один поток он идет в цикле while но каждый раз я его жду через Join

может быть есть какие то инструменты для определения?

POS_troi
12.06.2010, 12:02
Ну допустим утечка памяти

Chrome~
12.06.2010, 12:07
Трейси выполнение программы.

CraftR14
12.06.2010, 12:24
Если вайл, и ты не умееш с ним рабоатть то все просто) выходит такое выржение образно while 1=1 do sleep(1000) т.е. где то идет не завершимый цикл ~~

M_script_
12.06.2010, 12:32
Зачем гадать, лучше исходник покажи

zORG
12.06.2010, 12:32
c# я так понял, можно нажать "Отладка" и посмотреть на какой строке вылетело и почему.

M_script_
12.06.2010, 12:34
c# я так понял, можно нажать "Отладка" и посмотреть на какой строке вылетело и почему.
У него программа не вылетает, она виснет.

GhostOnline
12.06.2010, 13:30
Бесконечный цикл, как пить дать
Программа ждет наступления события которое никогда не произойдет
Лечится бОльшим количеством проверок входных данных, и проверками в циклах на определенное условие при котором цикл должен прерваться (Break)

Еще возможный вариант в мульти-тредных аппликациях: поток занял неделимый ресурс, его не освобождает, другие потоки ждут освобождения ресурса

miako
12.06.2010, 14:04
Медиумов нет, давай код.

eLWAux
12.06.2010, 14:16
дай угадаю, используешь WebRequest класс?
попробуй переписать под HttpWebRequest

need_million
12.06.2010, 14:28
использую HttpWebRequest.
код полный кину чуть поже. а структура примерно такая:

onlcikc -> тут запускается поток, в нем while -> тут много кода разных функций, после кода проверка на выход.

p/s но без кода и правда врядли подскажете=(