Переполнение стека потока - C#
Формулировка задачи:
Столкнулся с такой проблемой: Работаю в программе, и видимо когда много действий произвожу, при попытке сделать определенное действие мне вылетает ошибка:
Переполнение стека потока - видимо ему не хватает памяти потока, которая выделяется для программы или как то так, помогите решить проблему
Решение задачи: «Переполнение стека потока»
textual
Листинг программы
if (i < GlobalRoutesList.globalRoutesList.Count) { if (j < GlobalRoutesList.globalRoutesList[i].RoutesList.Count) { Int32 LastIndex = GlobalRoutesList.globalRoutesList[i].RoutesList[j].Path.Count - 1; if (GlobalRoutesList.globalRoutesList[i].RoutesList[j].Path[LastIndex].Server2 != SenderServer) { while (GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook.Count > 0) { if (CheckServer(GlobalRoutesList.globalRoutesList[i].RoutesList[j].VisitedServers, GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0]) == true) { GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook.RemoveAt(0); } else { for (int a = 0; a < GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0].NeighboringServers.Count; a++) { if (CheckServer(GlobalRoutesList.globalRoutesList[i].RoutesList[j].VisitedServers, GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0].NeighboringServers[a]) == false) { Route newRoute = new Route(); if (CheckServer(GlobalRoutesList.globalRoutesList[i].RoutesList[j].VisitedServers, GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0]) == false) { GlobalRoutesList.globalRoutesList[i].RoutesList[j].VisitedServers.Add (GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0]); } if (CheckServer(GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook, GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0].NeighboringServers[a]) == false) { newRoute.ServersForLook.Add(GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0].NeighboringServers[a]); } NewRoute(GlobalRoutesList.globalRoutesList[i].RoutesList[j],ref newRoute); for (int b = 0; b < ConnectionList.connectionList.Count; b++) { if ((ConnectionList.connectionList[b].Server1 == GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0]) && (ConnectionList.connectionList[b].Server2 == GlobalRoutesList.globalRoutesList[i].RoutesList[j].ServersForLook[0].NeighboringServers[a])) { if (CheckPaths(newRoute,ConnectionList.connectionList[b]) == false) { newRoute.Path.Add(ConnectionList.connectionList[b]); } } } if (CheckRoute(GlobalRoutesList.globalRoutesList[i].RoutesList,newRoute) == false) { GlobalRoutesList.globalRoutesList[i].RoutesList.Add(newRoute); } } } MinPath(i,j + 1,SenderServer); return; } } MinPath(i,j + 1,SenderServer); return; } else { MinPath(i,j + 1,SenderServer); return; } } else { MinPath(i+1,0,SenderServer); return; } } else { return; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д