[C#] Threads - How2 + Erklärung

02/10/2014 18:21 Unreal <3#1
Hey.
Bin vor kurzem in C# eingestiegen mit Visual Basic und bin nun an die folgende Grenze gestoßen, dass ich eine Endlosschleife habe, die auch dauerhaft durchlaufen muss, und mir gesagt wurde, dass ich etwas nebensächlich laufendes nur mit einem Thread machen kann.
Es wäre nett wenn mir jemand kurz und knackig erklärt wie ich das anstelle.
Mfg Unreal
02/10/2014 18:35 Schlüsselbein#2
Zeig deinen Code.
02/10/2014 18:48 Unreal <3#3
Quote:
Originally Posted by Schlüsselbein View Post
Zeig deinen Code.
Bin momentan Zuhause, und der Code ist bei der Arbeit. Ich versuchs dir aber kurz zu erklären.

Ein momentan einfaches Idle game.
Eine simple Exp Anzeige, die jede Sekunde 1 Exp hochzählt, und bei bestimmter Exp lvl erreicht, und diese dann erhöht.
D.h.

while
{
1 exp pro Sekunde
}

if
{
Exp erreicht, lvl erhöhen + mehr benötigte exp
goto 1. schleife
}
02/10/2014 18:50 th0rex#4
Code:
Thread t1 = new Thread(() =>
            {
                while(true)
                {
                    //dein code hier hin
                }
            });
            t1.Start();
            t1.Join(); // warte bis t1 sich beendet. kannst t1 auch einfach laufen lassen
        }
Google und MSDN kann helfen. Musst nur Zugriff auf gemeinsam Genutzte Objekte synchronisieren.
02/10/2014 18:59 snow#5
Du nutzt C#, was spricht gegen einen Timer, der jede Sekunde den Wert inkrementiert?
02/10/2014 19:06 Unreal <3#6
Quote:
Originally Posted by snow911 View Post
Du nutzt C#, was spricht gegen einen Timer, der jede Sekunde den Wert inkrementiert?
Wäre nett wenn du es mir etwas genauer erläuterst, bin reichlich neu in sachen C#.
Edit: Nutze nur die Console, kein Forms.
02/10/2014 21:25 Easy-Emu#7
Dazu kommt, dass das Arbeiten mit Timern immer die schlechteste aller Möglichkeiten ist.

Ist schon richtig, wenn du das über nen ThreadStart oder neuen Task laufen lässt.
02/10/2014 22:06 tolio#8
Quote:
Originally Posted by Unreal <3 View Post
Wäre nett wenn du es mir etwas genauer erläuterst, bin reichlich neu in sachen C#.
Edit: Nutze nur die Console, kein Forms.
nen neuen timer erstellen und starten, sollte auch in der console gehen


Quote:
Originally Posted by Easy-Emu View Post
Dazu kommt, dass das Arbeiten mit Timern immer die schlechteste aller Möglichkeiten ist.
Das "immer" an dieser Stelle würde ich nicht unterschreiben, es gibt sehr oft Mittel die besser sind als nen Timer aber eben auch nicht immer.
02/11/2014 17:27 Unreal <3#9
Wäre nett wenn mir auch jemand Privat helfen könnte, da ich einiges an Fragen hab, und nicht für jede ein Thread eröffnen will.

Möglichst Skype Adden.
Thx