Avatar billede syscom Nybegynder
27. marts 2001 - 21:39 Der er 9 kommentarer og
2 løsninger

Lave en timeout funktion i vb

Hvordan laver man en funktion i vb som gør at når jeg kører min streng igennem dén, den så tjekker at den får et respons i form af en eller anden værdi sendt fra serveren inden for xx antal sekunder?
Avatar billede jimmidreng Nybegynder
27. marts 2001 - 21:43 #1
Du kan evt. benytte en timer, sætte en værdi til false, og efter X antal sekunder tjekkes om den er true, hvilket du så sætter den til når serveren er færdig.
Hvis der eks. er gået 10 sekunder uden at din værdi er true, sætter du variablen ExitNow til true.

Husk at bruge DoEvents i dit loop.

I loopet sætter du så:

If ExitNow = True then
  Exit sub
end if
Avatar billede syscom Nybegynder
27. marts 2001 - 21:45 #2
Den holder ikke hvis man sender mange beskeder af gangen... sorry :(
Avatar billede jimmidreng Nybegynder
27. marts 2001 - 21:48 #3
Hvorfor skulle den ikke gøre det?
Du tjekker bare efter eksempelvis 1 sekund.
Resetter timeren efter hver afsendt besked.
Osv.
Så vil du bare max komme op på en ventetid pr. request på for eksempel 1 sekund.
Avatar billede syscom Nybegynder
27. marts 2001 - 21:53 #4
For det første vil jeg have jeg selv kan regulere timeout tiden, så det kan sagtens være f.eks. 10 sek.

For det andet, så skal der ikke være en begrænsning på hvor hurtigt beskederne bliver afsendt.
Avatar billede jimmidreng Nybegynder
27. marts 2001 - 21:58 #5
1. Det er da ikke noget problem.
En timer kan jo sættes med et interval på millisekunder.

2. Der vil jo ikke være nogen begrænsning, hvis alt går vel, bliver din tjek parameter jo automatisk sat til true, og tælleren resettes.

Resultatet vil blive hurtig eksekvering, og max ventetid på eksempelvis 10 sekunder.
Avatar billede syscom Nybegynder
27. marts 2001 - 22:03 #6
Hallo, hvis jeg sender f.eks. 40 beskeder afsted fra client til server, så vil timeren blive nulstillet 39 gange, og den sidste vil løbe tiden ud... - det kan jeg ikke bruge, for så får jeg kun én tilbage melding om at data modtaget.
Avatar billede jimmidreng Nybegynder
27. marts 2001 - 22:29 #7
Det er jo ikke verdens største problem at slukke for timeren når dit loop er færdigt-
Lidt almen programmør logik skader ikke.
Hvordan kan du se et problem i det?
Hvis du bruger Winsock, er der jo også timeout funktionen.
Så er det bare at lave en \"On Error Goto\" som så bliver kaldt hvis timeout bliver overskredet.
Avatar billede syscom Nybegynder
27. marts 2001 - 22:38 #8
- tak, dét VED jeg.

Problemet er stadig at ved at sende 40 værdier afsted, lige så hurtigt som computeren nu kan, SKAL de alle få en godkendelse af serveren.

Dette vil ikke ske, hvis blot der sidder én timer, så skulle der i princippet oprettes 40 timere der hverisær kører hversin time funktion - dette vil jeg dog udenom da jeg har set et eksempel på det her på Eksperten, men kan ikke finde det nu (men du har efterhånden været så stædig at jeg er nødt til at bruge min tid på at finde det nu), plus at det vil optage flere ressourcer ved brug af x antal timere på serveren.
Avatar billede jennemaan Nybegynder
27. marts 2001 - 22:49 #9
Lav dog en collection af ServerRequests eller hvad du nu vil kalde den...

Lad hver enkelt request have en ValidationString og ValidationTime... Når der kommer validering fra serveren kan du jo så sætte et eller andet flag... Hvis en validering oplever en timeout kan du jo raise en event...

Og check så collection\'en i ny og næ for at se om noget skulle være timeout\'ed :o)

/Jennemaan
Avatar billede jimmidreng Nybegynder
27. marts 2001 - 22:50 #10
Er jeg stædig?
Her sidder man og prøver at hjælpe, hvis det irritere dig, så har jeg sgu ikke noget imod bare at holde min kæft.
Som om jeg gider at beskæftige mig med en som ikke engang gider at blive hjulpet.
Hvis du var en kreativ programmør ville du sagtens kunne få timer løsningen til at virke.
Winsock timeout er også en mulighed.
Men fuck det, nu er jeg færdig her.
Avatar billede syscom Nybegynder
27. marts 2001 - 22:55 #11
Det irritere mig, du vil have det efter dit hovedet, når jeg som sagt siger det ikke vil virke som jeg skal have det til, uden at det vil blive klumset og gøre vb mere ustabil end det i forvejen er. - startede også ud med at sige at det ikke var det jeg ønskede, men du blev jo ved - istedet for at finde ud af andre løsninger, som Jennemaan nu lige har bidraget med - en løsning jeg ikke lige havde tænkt på; den er forholdvis enkel og derfor mere stabil og let at gå til.

op med humøret, I får begge nogle points

takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester