Hallo VB-Community,
ich würd gerne wissen wie ich am besten einen thread exakt 60 mal pro sekunde durchlaufen lassen, ich hatte schon ein paar Ansätze, aber die meisten gehen auf 63 oder sind bei anderen PCs auf 33, 53 oder sonst was.
meine Ansätze bisher:
Spoiler anzeigen
Hoffe ihr könnt mir helfen,
Gruß Splamy
Edit by nikeee13:
Falsches Unterforum, da es sich hier um C# handelt. -> Thread verschoben
ich würd gerne wissen wie ich am besten einen thread exakt 60 mal pro sekunde durchlaufen lassen, ich hatte schon ein paar Ansätze, aber die meisten gehen auf 63 oder sind bei anderen PCs auf 33, 53 oder sonst was.
meine Ansätze bisher:
VB.NET-Quellcode
- void GameThread()
- {
- while (true)
- {
- Double timeElapsed = 0;
- //code
- LimitFrameRate(timeElapsed, 60);
- }
- }
- public static void LimitFrameRate(Double timeElapsed, int fps)
- {
- long waitTime = 1000 / fps; Double timeTaken = absMS() - timeElapsed;
- while (timeTaken < waitTime)
- {
- Thread.Sleep(1);
- timeTaken = absMS() - timeElapsed;
- }
- timeElapsed = absMS();
- }
- public static Double absMS()
- {
- DateTime timeBase = new DateTime(2012, 1, 1);
- TimeSpan timeDiff = DateTime.Now.ToUniversalTime() - timeBase;
- return timeDiff.TotalMilliseconds;
- }
- }
Hoffe ihr könnt mir helfen,
Gruß Splamy
Edit by nikeee13:
Falsches Unterforum, da es sich hier um C# handelt. -> Thread verschoben
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nikeee13“ ()