Intrebare Visual c++ despre Delay function/propertie

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
Post Reply
User avatar
Popa Alin
Membru
Membru
Posts: 52
Joined: 30 May 2008, 11:00
Judet: Timiş
Location: Timisoara

Intrebare Visual c++ despre Delay function/propertie

Post by Popa Alin » 12 Jun 2008, 13:12

Salutare,
Am si eu o nelamurire.
Cum pot sa folosesc "un delay" adica de exemplu sa accesez un fiser de pe drive la fiecare 50 de secunde.

Mersi fain


Great minds disscuss ideas, average minds disscuss events, small minds disscuss people.

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Silviu Ardelean » 12 Jun 2008, 13:35

Utilizand functia API Sleep(miliseconds); intr-o bucla in care faci aceea accesare.

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Dragos Cojocari » 12 Jun 2008, 14:07

Sau cu un timer.

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Marius Bancila » 12 Jun 2008, 16:21

Eu as folosi in timer. Eventual se poate folosi un thread dedicat unde bagi cum zicea silviu, cate un sleep intre 2 procesari.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Silviu Ardelean » 12 Jun 2008, 16:49

Daca aplicatia are si parte de user interface, atunci, clar as merge pe varianta lui Marius cu 2 thread-uri, in care, la thread-ul de accesare a fisierului, sa apelez Sleep().

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3776
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Ovidiu Cucu » 12 Jun 2008, 22:44

BTW. In Windows "accesul la un fisier" este thread safe sau nu?

User avatar
Popa Alin
Membru
Membru
Posts: 52
Joined: 30 May 2008, 11:00
Judet: Timiş
Location: Timisoara

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Popa Alin » 15 Jun 2008, 20:09

Mersi fain la toata lumea. Am rezolvat problema simplu cu un sleep() cum a zis Silviu.
Am rezolvat problema de atunci dar nu am avut timp sa postez.



P.S. Inca odata se dovedeste ca acest forum este bestial. :thumbup: :thumbsup:
Great minds disscuss ideas, average minds disscuss events, small minds disscuss people.

User avatar
Popa Alin
Membru
Membru
Posts: 52
Joined: 30 May 2008, 11:00
Judet: Timiş
Location: Timisoara

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Popa Alin » 15 Jun 2008, 20:14

Ovidiu Cucu wrote:BTW. In Windows "accesul la un fisier" este thread safe sau nu?

Sincer nu stiu ce sa zic, poate mai apar pareri de la cei cu mai multa experienta.
Great minds disscuss ideas, average minds disscuss events, small minds disscuss people.

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Silviu Ardelean » 16 Jun 2008, 12:02

Popa Alin wrote:Mersi fain la toata lumea. Am rezolvat problema simplu cu un sleep() cum a zis Silviu.
Am rezolvat problema de atunci dar nu am avut timp sa postez.
Alin, nu cunosc aplicatia ta, dar in mod normal astfel de probleme se rezolva cu doua thread-uri si Sleep().
Gandeste-te ca de ex. ai putea incerca sa accesezi ptr. citire/scriere fisiere de catvia MB, poate chiar zeci de MB. In acel moment, daca tu nu ai alege un thread dedicat pentru citire/scriere aplicatia ta, ti se va intzepenii cand citeste/scrie si doar dupa terminarea operatiei, ai putea continua executia aplicatiei.

All the best!

User avatar
Popa Alin
Membru
Membru
Posts: 52
Joined: 30 May 2008, 11:00
Judet: Timiş
Location: Timisoara

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Popa Alin » 20 Jun 2008, 23:54

Silviu Ardelean wrote: Alin, nu cunosc aplicatia ta, dar in mod normal astfel de probleme se rezolva cu doua thread-uri si Sleep().
Gandeste-te ca de ex. ai putea incerca sa accesezi ptr. citire/scriere fisiere de catvia MB, poate chiar zeci de MB. In acel moment, daca tu nu ai alege un thread dedicat pentru citire/scriere aplicatia ta, ti se va intzepenii cand citeste/scrie si doar dupa terminarea operatiei, ai putea continua executia aplicatiei.

All the best!
Silviu, ca sa intelegi mai bine, tot ce imi trebuia mie am rezolvat si nu am probleme. Adica tot ce face aplicatia mea este: "acceseaza un fisier de pe drive, il deschide si apoi il inchide", that's all.
Este o aplicatie care ruleaza separat, adica pe langa ceea ce fac eu cu compul si aplicatiile aveam nevoie de o aplicatie mica care doar sa acceseze acel drive, deoarece daca nu il accesez timp de 2-3 minute intra intr-un fel de sleep mode si apoi orice accesare o considera ca fiind prima si pana aveam acces la informatii dura cam 10 secunde. Insa cu aceasta mica aplicatie am obtinut ce am vrut.
Insa nu inteleg ce vrei sa spui cu thread dedicat? Adica cum sa folosesc cele 2 thread-uri de care zici tu? Poti te rog sa fii mai explicit, sa imi dai mai multe detalii? Mersi fain.
Great minds disscuss ideas, average minds disscuss events, small minds disscuss people.

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Silviu Ardelean » 21 Jun 2008, 10:33

Alin, in situatia explicata de tine, intr-adevar nu mai e nevoie de un al 2-lea thread.
Situatia descrisa de mine cu doua thread-uri se aplica atunci cand efectuezi operatii de citire/scriere in fisiere ce pot ajunge la dimensiuni foarte mari.
Dupa cum stii, orice aplicatie are un thread principal. Sa presupunem ca aplicatia ta e de tip Dialog, iar in acest thread tu scrii si partea de afisare/modificare a continutului fisierelor.
Mergand pe ideea ca tu scrii partea de citire/scriere tot in thread-ul principal, in momentul in care tu ai deschide fisiere fisiere de dimensiuni foarte mari (ex. 10 MB), atunci, pana vei citii toate datele din fisier s-ar putea sa-ti ia cateva secunde bune, poate chiar zeci. Dar, pentru ca tu faci totul intr-un singur thread, pe durata citirii fisierului, tu nu vei mai putea face nimic in cadrul aplicatiei (sa interactionezi cu fereastra ta), ba chiar aplicatia iti va solicita mult procesorul.
Pentru a evita acest "disconfort" solutia e ca pentru partea de citire/scriere sa folosesti un thread secundar, ce iti va trimite o parte din datele citite in threadul principal. In aceasta situatie, pe perioada incarcarii/salvarii datelor, tu vei afisa/scrie doar o parte din continutul fisierului iar interfatza principala nu iti va fi blocata pe durata acestui proces de citire/scriere (implicit si procesorul va fi putzin utilizat).

User avatar
Popa Alin
Membru
Membru
Posts: 52
Joined: 30 May 2008, 11:00
Judet: Timiş
Location: Timisoara

Re: Intrebare Visual c++ despre Delay function/propertie

Post by Popa Alin » 24 Jun 2008, 10:39

Salutare tuturor.
O intrebare am si nu mai deschid alt topic pentru ca aici sa ajuns cu discutiile in punctul unde am eu nevoie.
Deci intrebarea mea este: "Pot sa fac ceva de genul, cum spune Silviu, cu thread-uri diferite si in Viasual Basic?". Adica m-am intalnit cu situatia de care vorbea Silviu, am o aplicatie cu interfata grafica si cand apas un buton asteapta sa introduc ceva pe portul serial, insa daca nu primeste nimic el tot sta acolo si nu mai pot sa interactionez cu fereastra.
Mersi fain.

P.S. Stiu ca este un forum de C++ dar ma gandesc ca poate stie cineva si Viasual Basic si ma poate ajuta.
Great minds disscuss ideas, average minds disscuss events, small minds disscuss people.

Post Reply