Kø i ny Thread

Tags:    c#

Hej Udviklere, jeg ville høre om man kunne lave en kø af opgaver, hvor man simpelt sender en ny opgave, og så står den i kø til execution
noget ala:
Fold kodeboks ind/udCSharp kode 

Hvor opgaverne også bliver fuldført i en ny Thread.

grunden jeg skal bruge det er, at jeg skal gemme et billede vært 50'ne millisekund, fordi jeg prøver at lave en skærm optager.



7 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
hvorfor bruger du ikke Jinq (screen recorder der er gratis)?

Hvis du selv vil lave det skal du ikke bruge tasks, du skal starte en løkke, som hvert 50'n milisekund tager et screenshot. Dvs. tag screenshot og sleep 50 milisekunder inde i en løkke.

Hvis du vil bruge task library skal du bruge task parallel library: http://msdn.microsoft.com/en-us/library/dd537609.aspx



screenshottet tager jo også tid at tage :P
Jeg har prøvet bare at lave en løkke, men tiden mellem billederne er ikke den samme.

Jeg vil prøve med Task biblioteket.

EDIT: Tasks virker, men hvis jeg kalder min function 2 gange, fordobbler den hastigheden...



Indlæg senest redigeret d. 28.09.2011 17:25 af Bruger #16191
Det er vel heller ikke meningen at du skal kalde din function 2 gange - forstår i hvert fald ikke helt hvad formålet med det skulle være? Giver vel ikke så meget mening at den skal stå og optage billeder hvert 50ms 2 gange på samme tid, eller hvad er idéen?



Du skal vente 50 ms _efter_ du har taget screenshot, så vil der altid være 50 ms mellem start og stop af screenshot. Den lidt mere processortunge tilgang er at lave et timestamp inden du tager dit billede, så tage billedet og så kalde din tag-billede-metode igen. Nu kigger den på hvor lang tid det er siden den sidst tog et billede.hvis det ermere end eller lig med 50 ms siden tager det et billede, ellers kalder den bare sig selv igen (her skal du nok sleepe nogle få ms) - det er nok nærmere dette du leder efter, men det er rigtigt processortungt.




Det er vel heller ikke meningen at du skal kalde din function 2 gange - forstår i hvert fald ikke helt hvad formålet med det skulle være? Giver vel ikke så meget mening at den skal stå og optage billeder hvert 50ms 2 gange på samme tid, eller hvad er idéen?

Hvis den fejler (begynder efter ca. 100 billder) så sender jeg bare funktionen igen, og så køre den fejlfrit 100 gange igen.

Du skal vente 50 ms _efter_ du har taget screenshot, så vil der altid være 50 ms mellem start og stop af screenshot. Den lidt mere processortunge tilgang er at lave et timestamp inden du tager dit billede, så tage billedet og så kalde din tag-billede-metode igen. Nu kigger den på hvor lang tid det er siden den sidst tog et billede.hvis det ermere end eller lig med 50 ms siden tager det et billede, ellers kalder den bare sig selv igen (her skal du nok sleepe nogle få ms) - det er nok nærmere dette du leder efter, men det er rigtigt processortungt.

sleep:
-screenshot har forskellig process-tid, så det kan jeg ikke :/
timestamp:
-andet, mindrere processortungt? :/



Indlæg senest redigeret d. 28.09.2011 19:45 af Bruger #16191
Hvorfor ikke bare bruge en Timer?

Ex:


Fold kodeboks ind/udCSharp kode 




Indlæg senest redigeret d. 28.09.2011 20:46 af Bruger #16594
jeg skal prøve det :)



t