Avatar billede onkel_satan Nybegynder
02. november 2006 - 21:25 Der er 1 løsning

windows message pump

Har lavet et lille spil i c# og kigger lidt efter hvordan man kan optimere det og klemme lidt mere ydelse ud af applikationen.

Har søgt lidt på nettet og nøsten alle diskutioner vender tilbage til Tom Millers render loop som alternativ til Applcation.doEvents()
http://blogs.msdn.com/tmiller/archive/2005/05/05/415008.aspx

Som jeg forstår det, lægger hele humlen i at man i gamle dos dage havde fuld kontrol over systemet og uden problemer kunne lave et game loop til at eksekvere ens spil. Men med windows er man nød til at vige for windows message pump ellers vil man tvinge systemet i knæ. En måde at dette på er ved at kalde doEvents() (uden at vide specifikt hvad den gør) som giver windows den nødvendige plads den skal bruge. Men som jeg ser det i Tom Millers alternativ (se ovenstående link) eksekvere han game loopet i formens idle event. Så er det jeg tæner, hvorfor i formens idle state, skulle det ikke være når windows/systemet idler at man vil have applikatinen afviklet?
Jeg ville altså have gættet på noget ala:
public class Form1 : Form
{
    public Form1() {
        while (AppStillIdle) {
            UpdateEnvironment();
            Render3DEnvironment();
        }
    }
    static void Main() {
        try { Application.Run(new Form1()); }
        catch { }
    }
}

Det bruger mig så videre til mit næste spørgsmål. I mit spil brugen jeg ingen at delende. Jeg laver en form og starter mit game loop i en thread for sig selv. Hvordan kan det være at det ikke kvæler windows ?

Håber der er nogen der kan skære det lidt ud i pap for mig, syntes ikke rigtig at jeg forstår det 100%, navnlig ham Millers alternativ.
Avatar billede onkel_satan Nybegynder
28. november 2006 - 12:21 #1
Fandt lang om læge ud af det.
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester