Arbeiten mit .NET: Das Framework/ Anhang/ Mehr zu Threads
Erscheinungsbild
Wofür dieser Code sinnvoll ist, ist noch ziemlich ungeklärt.
<span class="kwrd">using</span> System;
<span class="kwrd">using</span> System.Collections.Generic;
<span class="kwrd">using</span> System.Text;
<span class="kwrd">using</span> System.Threading; <span class="rem">//erforderlich</span>
<span class="kwrd">namespace</span> Wiki
{
<span class="kwrd">class</span> Program
{
<span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args)
{
<span class="rem">//Sowohl einzelne Threads</span>
Thread t1 = <span class="kwrd">new</span> Thread(<span class="kwrd">new</span> ParameterizedThreadStart(PrintHello));
Thread t2 = <span class="kwrd">new</span> Thread(<span class="kwrd">new</span> ParameterizedThreadStart(PrintHello));
Thread t3 = <span class="kwrd">new</span> Thread(<span class="kwrd">new</span> ParameterizedThreadStart(PrintHello));
<span class="rem">//Als auch ThreadArrays sind möglich</span>
Thread[] t = <span class="kwrd">new</span> Thread[5];
<span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i < t.Length; i++)
{
t[i] = <span class="kwrd">new</span> Thread(<span class="kwrd">new</span> ParameterizedThreadStart(PrintHi));
}
Console.WriteLine(<span class="str">"Test t1,t2,t3"</span>);
t1.Start((<span class="kwrd">object</span>)<span class="str">"Welt"</span>);
t2.Start((<span class="kwrd">object</span>)<span class="str">"Jan"</span>);
t3.Start();
Console.WriteLine(<span class="str">"Test t-Array"</span>);
<span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i < t.Length; i++)
{
t[i].Start((<span class="kwrd">object</span>)Convert.ToString(i));
}
Console.WriteLine(<span class="str">"Das Programm läuft weiter"</span>);
Console.Read();
}
<span class="kwrd">private</span> <span class="kwrd">static</span> <span class="kwrd">void</span> PrintHello(<span class="kwrd">object</span> x)
{
<span class="rem">//Unboxing</span>
<span class="kwrd">string</span> t = (<span class="kwrd">string</span>)x;
<span class="kwrd">for</span> (<span class="kwrd">int</span> i = 0; i < 20; i++)
{
Console.WriteLine(<span class="str">"Hello "</span> + t);
}
}
<span class="kwrd">private</span> <span class="kwrd">static</span> <span class="kwrd">void</span> PrintHi(<span class="kwrd">object</span> y){
<span class="kwrd">string</span> t = (<span class="kwrd">string</span>)y;
<span class="kwrd">for</span>(<span class="kwrd">int</span> i=0; i<20; i++){
Console.WriteLine(<span class="str">"Hi "</span>+t);
}}
}
}