Problem med Winform Timer der startes fra en anden tråd
Jeg har lavet en winform control, som benytter sig af en System.Windows.Forms.Timer til at animere et vindue.Det virker også fint fra en helt normal winform der bare har en button, som kalder dens start metode.
Men ideen var egentligt, at denne "animations-vindue" skulle aktiveres over netværk. Så jeg har bla. lavet en async listener socket ud fra eksemplerne på msdn (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconnon-blockingserversocketexample.asp).
Fra metoden "ReadCallback" hvor alt dataen er modtaget, kalder jeg så min metode der skulle starte dette "animations-vindue". Men af en eller anden grund som jeg ikke kan regne ud, så "affyres" timerens tick-events aldrig efter dette. Selvom timeren efterfølgende står som enabled, og har den rigtige interval-tid når jeg pauser og kigger i debuggeren.
Er det muligt at den tråd som timeren benytter bliver blokeret på en eller anden måde, eller den bliver lukket ned når tråden der kaldte den dør?
Jeg starter Listener-serveren i en seperat tråd, i stedet for i en main metode som msdn eksemplet viser. Af hvad jeg har forstået så spawner listener-serveren så nogle threadpool tråde som en del af de asynkrone kald. Når jeg beder min timer om at starte må jeg vel være inde i en af disse threadpool tråde.
Jeg håber at det jeg skriver er forklaret så det kan forstås, ellers skriv lige hvis der er noget jeg skal forklare mere.