Priorita & Timer – Visual Basic – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Priorita & Timer – Visual Basic – Fórum – Programujte.comPriorita & Timer – Visual Basic – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Trebor0
Stálý člen
25. 11. 2011   #1
-
0
-

cawte ze robim si teraz taký program (stopky) a aby tam bežali desainy sekundy tak som nastavil timer na 100 ms ale potrbujem nastaviť prioritu na najvyšiu aby to bolo naozaj 100ms a nie 105 (podla toho ako PC stíha) neviem ako to mam presne naprogramovať. poradte. dík.

Nahlásit jako SPAM
IP: 84.47.4.–
Reklama
Reklama
liborb
~ Redaktor
+18
Guru
25. 11. 2011   #2
-
0
-

Pokud to potřebuješ jenom na zobrazování, tak ti stačí i těch 100ms +- 50ms :), protože stejně ti to něco může zbrzdit (stačí vložit CD apod.) a vnitřně si ten čas měřit správně (GetTickCount apod.).

Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
25. 11. 2011   #3
-
0
-

taze takto nejak :    

Label1.Text = Dec(GetTickCount / 1000) & " sec."    

??

Nahlásit jako SPAM
IP: 84.47.4.–
liborb
~ Redaktor
+18
Guru
25. 11. 2011   #4
-
0
-

GetTickCount ukazuje počet milisekund od startu počítače. Takže při spuštění stopek si uložíš startovací "čas" (start) a pak to bude:

Label1.Text = Dec((start - GetTickCount) / 1000) & " sec." 
Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
25. 11. 2011   #5
-
0
-

ok díky

Nahlásit jako SPAM
IP: 84.47.4.–
Trebor0
Stálý člen
25. 11. 2011   #6
-
0
-

pockaj a neni to nahodou len pre VB 6 lebo ja mam VB 2010 a vyhadzuje mi chybu že to neni deklarované

Nahlásit jako SPAM
IP: 84.47.4.–
liborb
~ Redaktor
+18
Guru
25. 11. 2011   #7
-
0
-

System.Environment.TickCount

Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
25. 11. 2011   #8
-
0
-

toto už funguje ....... díkes

Nahlásit jako SPAM
IP: 84.47.4.–
Trebor0
Stálý člen
25. 11. 2011   #9
-
0
-

zistil som že je to takto oveľa komplikovanejšie takže predsa by som chcel vedieť ako by som mohol nastaviť prioritu tých časovačov.

Nahlásit jako SPAM
IP: 84.47.4.–
liborb
~ Redaktor
+18
Guru
25. 11. 2011   #10
-
0
-

Nastavení priority časovače ve Windows je nekonečněkrát složitější problém než výše popsaný neb to nejde. Prioritu můžeš změnit vláknu, ale to je platné, jak mrtvému zimník, protože se ti ten časovač stejně bude rozcházet i kdyby si nastavil realtime prioritu.
U stopek je důležitý počáteční a koncový čas. Co je mezitím je putna a může to mít přesnost zobrazení +-100ms. Nehledě na to, že je to venkoncem jednoduché.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.208.–
Trebor0
Stálý člen
25. 11. 2011   #11
-
0
-

no lenže tým spôsobom TickCount sa daju stopky spustit zastaviť a potom sa už nedá pokračovať pretože stopky sa vynulujú a keď je už 60 sekund tak sa minuty nemaju ako povýšiť lebo som daval napr. If Label1.Text = "59.999" Then Label2.Text = Label2.Text + 1 ale aj napr. ze som tam dal 59,000 < 60,000 tak ani tak nešlo nevedel by si nejaký spôsob ?

Nahlásit jako SPAM
IP: 84.47.4.–
Trebor0
Stálý člen
25. 11. 2011   #12
-
0
-

alebo teraz ma napadlo dalo by sa vo výpočte urobiť tak abi napr.  15256 / 1000 = 15   ..... aby sa tie tri cifry uplne vymazali.

Nahlásit jako SPAM
IP: 84.47.4.–
liborb
~ Redaktor
+18
Guru
25. 11. 2011   #13
-
0
-

Nějak nechápu, co řešíš. Čas stopek v ms vynásobiš 1000 a máš to v sekundách. Pokud tě nezajímají desetiny, tak výsledek dělení ukládej do celočíselného typu a zbavíš se jich snadno a rychle. Následně zbytek po dělení 60 ti dá počet sekund a dělením 60 dostaneš počet minut. Pokud tě zajímají i hodiny, tak analogicky pokračuješ.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.208.–
Trebor0
Stálý člen
25. 11. 2011   #14
-
0
-

jaaaj ahaa .... az teraz mi to nejako doplo ... uz rozumiem

Nahlásit jako SPAM
IP: 84.47.4.–
Trebor0
Stálý člen
25. 11. 2011   #15
-
0
-

a este ze ako mozem pokracovat v merani času bez toho aby sa vynulovali predošlé hodnoty

Nahlásit jako SPAM
IP: 84.47.4.–
liborb
~ Redaktor
+18
Guru
25. 11. 2011   #16
-
0
-

Myslíš mezičas? Dokud si nevynuluješ startovní čas, tak stále stopky "měří". Takže při mezičase jenom zjistit aktuální tickcount a vypsat mezivýsledek.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.208.–
Trebor0
Stálý člen
25. 11. 2011   #17
-
0
-

myslim tak že ked pauznem stopky na napr.  25.5 a dam pokračovať tak to nevynuluje a nezačne odznova ale bude pokračovať 25.6, 25.7, .....

Nahlásit jako SPAM
IP: 84.47.4.–
liborb
~ Redaktor
+18
Guru
26. 11. 2011   #18
-
0
-

Používej pole na ukládání startovacích a ukončovacích časů a pak je vhodně sčítej anebo odčítej (podle toho jak se na to budeš dívat).

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 82.145.211.–
Trebor0
Stálý člen
30. 1. 2012   #19
-
0
-

Viem že píšem trochu neskoro ale skúšal som  ten TickCount  a viem približne čo tam treba ale neviem si to v hlave dostatočne logicky predstavit aby sa to zastavilo, pozastavilo, znovu pustilo atd. Neviem ako príkazy zostavit a potom do akeho poradia ich dať a do ktorých procedúr, pomohol by mi s týmto niekto ... :( .. dík 

Nahlásit jako SPAM
IP: 78.98.153.–
liborb
~ Redaktor
+18
Guru
31. 1. 2012   #20
-
0
-

Máš 2 pole, do jednoho ukládáš čas při spuštění stopek a do druhého ukládáš čas při stopnutí stopek. Pole budou dostatečně dlouhá, aby se do nich vešly všechny spuštění a zastavení. 

Výsledný čas bude součtem rozdílů  na stejných indexech (pro ukončené sekvence, tj. kde existuje start i stop čas) + aktuální čas od posledního startu.

Řekněme, že máme už 6 úseků (indexy 0 až 5) a na indexu 6 máme uložený start dalšího úseku, takže pak je celkový čas:

casCelkem = 0

For i As Integer = 0 To 5
  casCelkem = casCelkem + (konec(i) - start(i))
Next

if start(6) > 0 then
  casCelkem = casCelkem + (System.Environment.TickCount - start(i))
end if
Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
31. 1. 2012   #21
-
0
-

diky moc ... :)

Nahlásit jako SPAM
IP: 78.98.153.–
Trebor0
Stálý člen
31. 1. 2012   #22
-
0
-

uz to fičí perfektne ale potreboval by som už iba vediet ako sa dá deliť iba naurčený počet desatinných miest ?

Nahlásit jako SPAM
IP: 78.98.153.–
liborb
~ Redaktor
+18
Guru
1. 2. 2012   #23
-
0
-

Asi chceš dělit a výsledek formátovat do řetězce na určený počet desetinných míst, ne?

Nahlásit jako SPAM
IP: 78.80.52.–
Trebor0
Stálý člen
3. 2. 2012   #24
-
0
-

presne

Nahlásit jako SPAM
IP: 78.98.153.–
liborb
~ Redaktor
+18
Guru
3. 2. 2012   #25
-
0
-

Zapiš formát do ToString funkce nebo použij String.Format (příklady v C# ... ve VB si je najdeš případně sám). 

Nahlásit jako SPAM
IP: 78.80.52.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

Podobná vlákna

Priorita operáturů — založil David10101

Priorita programu — založil Spectator

Vlakna(Threads) - priorita — založil NotBeginner

Timer — založil petr143

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý