Program svare ikke/Deadlock
HejJeg har lavet en application til at lave pluklister som køre en masse iterationer vha et par algoritmer.
Jeg har denne løkke til at lave en itteration:
//sætter den første løsning
sAlg.initalSolution(metode);
Stopwatch timer = Stopwatch.StartNew();
//her køre jeg hver iteration til en løsning er fundet
while (!sAlg.isFinished())
{
timerPerIteration = Stopwatch.StartNew();
//Køre næste trin i forbedrings heuristikken
sAlg.improvementOfSolution(metode);
setStatusBar(iteration, sAlg.NumberOfIteration, i+1);
iteration++;
timerPerIteration.Stop();
numTicks += timerPerIteration.ElapsedTicks;
}
timer.Stop();
problemet er at når jeg starter denne kørsel ender jeg i at programmet stopper med at svare hvis jeg ligger det i baggrunden eller på anden måde klikker på det. Jeg ved kørslen køre færdig og programmet svare igen når kørslen er færdig, men dette er ikke optimalt da de kørsler jeg laver skal gennem ca gennem op til 350 iterationer, hvor der skal testes op til 50 noder i hver iteration, dette giver en kørselstid på op til 1.5 time for de største problemer
er der en måde jeg hver gang jeg har kørt en iteration kan få programmet til at svare.
sAlg.improvement: køre 2 test, som alt efter problemet størrelse tager mellem 0.5 sekunder og 1.5 min, jeg kan desværre ikke optimere mere på denne kørselstid mere end den allerede er, det er et par meget beregningstunge kørsler.
det er ikke lang til
/jonas