![]() |
Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Pauza fara sa "inghet" aplicatia
Last Updated: Dec 14 2007 21:30, Started by
ANQ
, Dec 14 2007 13:15
·
0

#1
Posted 14 December 2007 - 13:15

Salut
Vreau sa opresc un FOR pentru jumatate de secunda , fara efecte secundare . Adica : - am incercat cu sleep(500) , dar imi blocheaza aplicatia - am incercat si9 algoritmul urmator : For i = 0 To 200 hline.Left = i Refresh() cs = Format(Now.Subtract(acum).Milliseconds, 0) cr = cs While cr + 500 > cs cs = Format(Now.Subtract(acum).Milliseconds, 0) If cs < 500 Then cs = cs + 999 End If End While Next idar imi nenoroceste , de asemenea , aplicatia . in jumatate de secunda trebuie sa citeasca secunda curenta de 500 de ori ... si sa treaca si prin if ... Daca poate sa imi spuna cineva cum pot sa opresc ciclul fara sa mi se blocheze aplicatia , ii sunt recunoscator ![]() Folosesc VB2005
Edited by RAZ, 16 December 2007 - 10:05.
|
#2
Posted 14 December 2007 - 13:44

Salut,
Incearca ca in acel while sa adaugi un mic Sleep(10) sau un DoEvents ![]() Edited by RAZ, 14 December 2007 - 13:44. |
#3
Posted 14 December 2007 - 13:51

Salut Vreau sa opresc un FOR pentru jumatate de secunda , fara efecte secundare . Adica : - am incercat cu sleep(500) , dar imi blocheaza aplicatia - am incercat si9 algoritmul urmator : For i = 0 To 200 hline.Left = i Refresh() cs = Format(Now.Subtract(acum).Milliseconds, 0) cr = cs While cr + 500 > cs cs = Format(Now.Subtract(acum).Milliseconds, 0) If cs < 500 Then cs = cs + 999 End If End While Next i dar imi nenoroceste , de asemenea , aplicatia . in jumatate de secunda trebuie sa citeasca secunda curenta de 500 de ori ... si sa treaca si prin if ... Daca poate sa imi spuna cineva cum pot sa opresc ciclul fara sa mi se blocheze aplicatia , ii sunt recunoscator ![]() Folosesc VB2005 Nu stiu sa lucrez in vb2005 dar stiu ca este 'asemanator' cu vb6.0 Am un cod (scris in visual basic 6.0) pe care ai putea sa il modifici . Public Declare Function GetTickCount Lib "kernel32.dll" () As Long Public Function Asteapta(ByVal Astept_Milisecunde As Long) 'Timp in milisecunde Dim EndTime As Long EndTime = GetTickCount + Astept_Milisecunde Do Until GetTickCount > EndTime DoEvents Loop End Function ... daca nu merge incearca cu un timer ![]() |
#4
Posted 14 December 2007 - 15:10

Public Declare Function GetTickCount Lib "kernel32.dll" () As Long Public Function Asteapta(ByVal Astept_Milisecunde As Long) 'Timp in milisecunde Dim EndTime As Long EndTime = GetTickCount + Astept_Milisecunde Do Until GetTickCount > EndTime DoEvents Loop End Function ... daca nu merge incearca cu un timer ![]() freshmeat , am incercat varianta ta si am reusit sa obtin un raspuns mai bun de la aplicatie , f lent , dar e un raspuns ![]() cu alte cuvinte , nu s-a blocat chiar de tot , si CPU nu mai e 98% , e 96 % ![]() ms mult , oricum , pentru ajutor ![]() cat despre timer , ![]() RAZ said: Salut, Incearca ca in acel while sa adaugi un mic Sleep(10) sau un DoEvents RAZ , am incercat asta deja [am mentionat in primul post , cu sleep(500) si refresh() in loc de DoEvents] ... si nu e deloc practic pentru ca imi opreste aplicatia ..imi trebuie de fapt sa faca o animatie cat timp se incarca ceva , daca eu opresc tot timpul aplicatia , cum o sa se mai incarce ? anyway , multzumesc pt raspunsul rapid |
#5
Posted 14 December 2007 - 15:20

RAZ , am incercat asta deja [am mentionat in primul post , cu sleep(500) si refresh() in loc de DoEvents] ... si nu e deloc practic pentru ca imi opreste aplicatia ..imi trebuie de fapt sa faca o animatie cat timp se incarca ceva , daca eu opresc tot timpul aplicatia , cum o sa se mai incarce ? anyway , multumesc pt raspunsul rapid Una e Sleep (500) in primul For alta e Sleep(20) in While-ul din for, una e Refresh alta e DoEvents, in fine ideea era ca un Sleep(20)+DoEvents erau suficiente pentru CPU sa proceseze si altceva, sa nu-ti inghete in acel loop... succes ![]() |
#6
Posted 14 December 2007 - 17:22

Una e Sleep (500) in primul For alta e Sleep(20) in While-ul din for, una e Refresh alta e DoEvents, in fine ideea era ca un Sleep(20)+DoEvents erau suficiente pentru CPU sa proceseze si altceva, sa nu-ti inghete in acel loop... succes ![]() cine stie cunoaste ![]() ai avut dreptate . am redus CPU la 19 .. deci e grozav ![]() cand ai timp sa imi explici si care e ideea , pls ... p.s. am facut ceva , mai mult din nimereala , cu un gif ... atata timp cat mergea chestia asta cu sleep si doevents , animatia se vedea chiar f clar ... stii cumva care ar fi ideea ? sau altfel .. stii cum sa fac un gif sa afiseze fiecare frame timp de 5 milisecunde ? in mod normal merge cu 10 milisecunde , si asta inseamna ca imi sare peste cate un frame ... (asta in cazul in care ar utiliza mai putin din cpu) Edited by ANQ, 14 December 2007 - 17:30. |
#7
Posted 14 December 2007 - 21:30

freshmeat , am incercat varianta ta si am reusit sa obtin un raspuns mai bun de la aplicatie , f lent , dar e un raspuns ![]() cu alte cuvinte , nu s-a blocat chiar de tot , si CPU nu mai e 98% , e 96 % ![]() ms mult , oricum , pentru ajutor ![]() Salut . In vb 6.0 folosesc des functia si am rezultate foarte bune nu stiu cum se comporta in vb 2005 . Ma bucur ca ai gasit rezolvare ! Edited by freshmeat, 14 December 2007 - 21:30. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users