Aufgabe Multithreading
This commit is contained in:
10
Multi/Multi.csproj
Normal file
10
Multi/Multi.csproj
Normal 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
63
Multi/Program.cs
Normal 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();
|
||||
31
Multi/SimpleTaskProgram.cs
Normal file
31
Multi/SimpleTaskProgram.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user