Hej, Jag tro att det bästa du kan göra är att lägga in Sleep(200) i loopen. Har testat en annan teknik nu i stället för en loop. Måste se koden där det händer.Men det verkar vara ett enkelt fel. Sitter på kontoret nu men ska kolla upp det där på en gång när jag kommer hem. Lyckas jag inte lösa det så kommer jag med lite fin kod :) Verkar som jag har fått det att fungera.. Eller i alla fall kommit förbi det felet ;)Vänta på klartecken
Jag har en loop som utför vissa saker, men innan varje loop så ska den vänta och se om bolOK = True och är den True så ska den fortsätta, annars vänta tills bolOK är True.
Jag vet att man kan sätta in en till loop som loopar tills bolOK = True och på så sätt få den att vänta men det vill jag inte eftersom det tar så mycket CPU om den ska stå och loopa hela tiden.
Det den gör är att den sänder saker via Winsock och jag vill inte att den ska sända nästa del innan första är helt mottagen.Sv: Vänta på klartecken
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Sv: Vänta på klartecken
Har tagit bort loopen ur subben som skickar datan och i stället gjort så att den anropas varje gång sändningen är klar i Winsock1_SendComplete alltså.
Detta tyckte jag borde fungera men jag får felet Out of stack space, vad kan det bero på?
Kan tillägas att det inte alltid kommer utan endast när det är stora mänder data som ska skickas inte vid mindre mängder. Felet uppstår endast då datan som ska skickas är över 1921024 bytes. Allt under det går alltså bra. Datan skickas alltid i "paket" om 4096 bytes, med andra ord hinner den skicka 469 "paket" innan felet uppstår.Sv: Vänta på klartecken
Stacken byggs på eftersom du adderar på nåt sätt,det får man bla. när det blir sk rekursivt anrop.
Du måste på något vis nollställa buffern/packetet efter varje 4096 sändning.
Om du skickar till en Sub/Function se till att det står
ex. MinFuncSub(ByVal inStr As String) "ByVal" är budskapet.
Gör dom vitala variablerna Lokala.
Alla variabler som är deklarerade som Integer skall du ändra till Long.
Man skall numera ALDRIG använda Integer i VB, skall vara Long i 32 bit system.Sv: Vänta på klartecken
Tack!Sv: Vänta på klartecken
Har skrivit om hela funktionen från grunden och gjort en annan uppbyggnad av hela scriptet så jag vet fortfarande inte riktigt vad som var fel förut, men felet finns iallafall inte kvar längre :)