예제 #1
0
        static void Teil2()
        {
            Läufer ole = new Läufer(ConsoleColor.Red);

            Läufer ronny = new Läufer(ConsoleColor.Yellow);

            // Parameterized Threadstart braucht ein object als Parameter
            Thread t1 = new Thread(ole.Laufen2);
            Thread t2 = new Thread(ronny.Laufen2);

            t1.Name = "Ole";
            t2.Name = "Ronny";

            t1.Priority = ThreadPriority.Lowest;
            t2.Priority = ThreadPriority.Highest;

            Console.WriteLine("*****START******");
            t1.Start(250);
            t2.Start(100);

            //Aktueller Thread (Main) wartet auf das thread das join() aufruft
            t1.Join();

            // wird ausgegeben wenn t1 beendet ist, ABER das muss nicht direkt danach sein
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("t1 beendet");

            t2.Join();
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("*****ENDE*******");
        }
예제 #2
0
        static void Teil1()
        {
            Läufer per = new Läufer(ConsoleColor.Red);

            Läufer ronny = new Läufer(ConsoleColor.Yellow);

            // Funktion ohne Übergabeparameter
            Thread t1 = new Thread(per.Laufen);
            Thread t2 = new Thread(ronny.Laufen);

            // Name dient die Zuordnung in der Ausgabe
            t1.Name = "Per";
            t2.Name = "Ronny";

            t1.Start();
            t2.Start();

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("******ENDE******");
        }