Aufgabe Multithreading

This commit is contained in:
2025-05-26 16:06:15 +02:00
parent 63e516fc22
commit 4e9673b288
4 changed files with 110 additions and 0 deletions

10
Multi/Multi.csproj Normal file
View File

@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

63
Multi/Program.cs Normal file
View File

@@ -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<string> Methode()
{
return await Task.Run(() => Arbeiten1("Methode"));
}
async Task<string> Methode1()
{
await Methode();
return await Task.Run(() => Arbeiten1("Methode1"));
}
async Task<string> Methode2()
{
return await Task.Run(() => Arbeiten1("Methode2"));
}
Methode();
Methode1();
Methode2();

View File

@@ -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();
}
}
}

View File

@@ -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