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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user