diff --git a/Multi/Multi.csproj b/Multi/Multi.csproj new file mode 100644 index 0000000..fd4bd08 --- /dev/null +++ b/Multi/Multi.csproj @@ -0,0 +1,10 @@ + + + + Exe + net9.0 + enable + enable + + + diff --git a/Multi/Program.cs b/Multi/Program.cs new file mode 100644 index 0000000..796fb24 --- /dev/null +++ b/Multi/Program.cs @@ -0,0 +1,63 @@ + +using Multi; + + +// Aufgabe 1 +void Arbeiten() +{ + for (int i = 0; i <= 10; i++) + { + Console.WriteLine(Thread.CurrentThread.Name + $"; {i}"); + Thread.Sleep(1); + } +} + +Thread thread = new Thread(() => Arbeiten()); +Thread thread1 = new Thread(Arbeiten); +Thread thread2 = new Thread(Arbeiten); + +thread.Name = "Test"; +thread1.Name = "Test1"; +thread2.Name = "Test2"; + +thread.Start(); +thread1.Start(); +thread2.Start(); + +// Aufgabe 2 + +SimpleTaskProgram simpleTaskProgram = new(); +simpleTaskProgram.Start(); + +// Aufgabe 3 + +string Arbeiten1(string name) +{ + for (int i = 0; i < 10; i++) + { + Console.WriteLine($"{name}: {i}"); + Task.Delay(1).Wait(); + } + + return "erledigt"; +} + +async Task Methode() +{ + return await Task.Run(() => Arbeiten1("Methode")); +} + +async Task Methode1() +{ + await Methode(); + return await Task.Run(() => Arbeiten1("Methode1")); +} + +async Task Methode2() +{ + return await Task.Run(() => Arbeiten1("Methode2")); +} + +Methode(); +Methode1(); +Methode2(); diff --git a/Multi/SimpleTaskProgram.cs b/Multi/SimpleTaskProgram.cs new file mode 100644 index 0000000..9023fc4 --- /dev/null +++ b/Multi/SimpleTaskProgram.cs @@ -0,0 +1,31 @@ +namespace Multi; + +internal class SimpleTaskProgram +{ + public void Start() + { + Methode1(); + Methode2(); + } + + public async Task Methode1() + { + await Task.Run(() => + { + for (int i = 0; i < 25; i++) + { + Console.WriteLine("Methode 1"); + Task.Delay(100).Wait(); + } + }); + } + + public void Methode2() + { + for (int i = 0; i < 25; i++) + { + Console.WriteLine("Methode 2"); + Task.Delay(100).Wait(); + } + } +} diff --git a/Ubung.sln b/Ubung.sln index 58309f9..4c13ee9 100644 --- a/Ubung.sln +++ b/Ubung.sln @@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FahrzeugeMVC", "FahrzeugeMV EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FahrzeugDatenBank", "FahrzeugDatenBank\FahrzeugDatenBank.csproj", "{34C040B0-819F-4DF8-94FD-77A6A037F957}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Multi", "Multi\Multi.csproj", "{F89339C1-2589-428A-82D6-6799A875C421}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +35,10 @@ Global {34C040B0-819F-4DF8-94FD-77A6A037F957}.Debug|Any CPU.Build.0 = Debug|Any CPU {34C040B0-819F-4DF8-94FD-77A6A037F957}.Release|Any CPU.ActiveCfg = Release|Any CPU {34C040B0-819F-4DF8-94FD-77A6A037F957}.Release|Any CPU.Build.0 = Release|Any CPU + {F89339C1-2589-428A-82D6-6799A875C421}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F89339C1-2589-428A-82D6-6799A875C421}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F89339C1-2589-428A-82D6-6799A875C421}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F89339C1-2589-428A-82D6-6799A875C421}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE