![]() |
Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. 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