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
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FahrzeugDatenBank", "FahrzeugDatenBank\FahrzeugDatenBank.csproj", "{34C040B0-819F-4DF8-94FD-77A6A037F957}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FahrzeugDatenBank", "FahrzeugDatenBank\FahrzeugDatenBank.csproj", "{34C040B0-819F-4DF8-94FD-77A6A037F957}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Multi", "Multi\Multi.csproj", "{F89339C1-2589-428A-82D6-6799A875C421}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
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}.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.ActiveCfg = Release|Any CPU
|
||||||
{34C040B0-819F-4DF8-94FD-77A6A037F957}.Release|Any CPU.Build.0 = 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
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
Reference in New Issue
Block a user