using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleApplication22
{
class Program
{
static int N = 10000;
static DateTime start;
static string a = "A";
///
/// Funkce, ktera vytvori, naplni a setridi pole
///
static void VytvorNaplnASetridPole()
{
lock(a)
{
kolikBezi++;
}
int[] pole = new int[N];
Random rnd = new Random();
for (int i = 0; i < N; i++)
{
pole[i] = rnd.Next(int.MaxValue);
}
#region cykly
for (int j = 0; j < N-1; j++)
{
for (int i = 0; i < N-1; i++)
{
if (pole[i] > pole[i + 1])
{
int pom = pole[i];
pole[i] = pole[i + 1];
pole[i + 1] = pom;
}
}
}
#endregion
Console.WriteLine("{0} ms",
(DateTime.Now - start).TotalMilliseconds);
lock (a)
{
kolikBezi--;
}
}
public delegate void Tisk(string zprava);
///
/// funkce, ktera ...
///
/// Prvni a jediny parametr
static void Jednou(string s)
{
Console.WriteLine("Jednou: {0}",s);
}
static void Dvakrat(string s)
{
Console.WriteLine("Dvakrat: {0}", s);
Console.WriteLine("Dvakrat: {0}", s);
}
static int kolikBezi = 0;
static void Main(string[] args)
{
Console.WriteLine(Environment.ProcessorCount);
start = DateTime.Now;
/*
Thread th = new Thread(
VytvorNaplnASetridPole
);
th.Start();
/* */
new Thread(VytvorNaplnASetridPole).Start();
new Thread(VytvorNaplnASetridPole).Start();
new Thread(VytvorNaplnASetridPole).Start();
new Thread(VytvorNaplnASetridPole).Start();
new Thread(delegate()
{
N = N / 2;
VytvorNaplnASetridPole();
VytvorNaplnASetridPole();
Console.WriteLine("hotovo----");
}
).Start();
while (kolikBezi>0)
Console.Write(".",kolikBezi);
Console.ReadLine();
/*
VytvorNaplnASetridPole();
VytvorNaplnASetridPole();
VytvorNaplnASetridPole();
VytvorNaplnASetridPole();
/*
Tisk t;
t = Jednou;
t("ABCD");
Console.WriteLine("---------");
t = Dvakrat;
t("ABCD");
Console.WriteLine("---------");
t += Jednou;
t("ABCD");
Console.WriteLine("---------");
t += Dvakrat;
t("ABCD");
Console.WriteLine("---------");
t -= Dvakrat;
t("ABCD");
Console.WriteLine("---------");
t += delegate(string s)
{ Console.WriteLine("XXX"); };
t("ABCD");
Console.WriteLine("---------");
t -= delegate(string s)
{ Console.WriteLine("XXX"); };
t("ABCD");
Console.WriteLine("---------");
/*
start = DateTime.Now;
VytvorNaplnASetridPole();
VytvorNaplnASetridPole();
VytvorNaplnASetridPole();
VytvorNaplnASetridPole();
Console.ReadLine();
* */
}
}
}