using System;
using System.Threading;
internal class Program
{
private static int count = 0;
private static void Main(string[] args)
{
int countThreads = 1;
ThreadStart ts = new ThreadStart(MyMethod);
Thread[] threads = new Thread[5];
for (int i = 0; i < threads.Length; i++)
{
threads[i] = new Thread(ts);
threads[i].Start();
}
for (int i = 0; i < threads.Length; i++)
{
threads[i].Join();
}
Console.WriteLine($"Count = {count}");
//ThreadStart ts = new ThreadStart(MyMethod);
//Thread thread = new Thread(ts);
//thread.IsBackground = t rue;
//thread.Priority = ThreadPriority.Normal;
//thread.Start();
//ParameterizedThreadStart pts = new ParameterizedThreadStart(MyMethod2);
//Thread thread1 = new Thread(pts);
//thread1.Start("Привет");
//ParameterizedThreadStart pts1 = new ParameterizedThreadStart(MyMethod3);
//Thread thread2 = new Thread(pts1);
//thread2.Start(3);
//for (int i = 0; i < 100; i++)
//{
// Thread.Sleep(20);
// Console.WriteLine($"Hello, World! [{i}]");
//}
}
private static void MyMethod()
{
for (int i = 0; i < 1000000; i++)
{
Thread.Sleep(1);
count++;
}
}
//private static void MyMethod()
//{
// for (int i = 0; i < 100; i++)
// {
// Thread.Sleep(50);
// Console.WriteLine($"\t\t\tHello [{i}]");
// }
//}
private static void MyMethod2(object obj)
{
string str = obj as string;
for (int i = 0; i < 10; i++)
{
Thread.Sleep(50);
Console.WriteLine($"\t\t{str}");
}
}
private static void MyMethod3(object obj)
{
string thread2 = obj as string;
for (int i = 0; i < 10; i++)
{
Thread.Sleep(50);
Console.WriteLine($"\t\t3*{i} = {3*i}");
Console.WriteLine($"\t\t5*{i} = {5*i}");
}
}
}