Использовать или мьютекс или монитор для синхронизации потоков - C#
Формулировка задачи:
Ребят, дошел до синхронизации потоков, и застрял. В делфи по моему было это проще. Короче суть задания использовать или мьютекс или монитор. Но в моем коде, нужно вывести по порядку от 1 до 10, но это не происходит. Где ошибся? Или может что-то пропустил?
using System;
using System.Threading;
namespace ConsoleApplication2
{
class Program
{
private static Mutex mutex = new Mutex();
private static ManualResetEvent mre;
private static void Test(object ar)
{
mutex.WaitOne();
Console.WriteLine(ar.ToString());
mutex.ReleaseMutex();
}
static void Main()
{
Thread[] threadArray;
for (int i = 1; i < (threadArray = new Thread[11]).Length; i++)
{
threadArray[i] = new Thread(new ParameterizedThreadStart(Test)) { IsBackground = true };
threadArray[i].Start(i);
Thread.Sleep(5);
}
Console.ReadKey();
}
}
}Решение задачи: «Использовать или мьютекс или монитор для синхронизации потоков»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApplication31
{
class Program
{
static Mutex mt = new Mutex();
static void Main(string[] args)
{
Thread[] threadArr = new Thread[10];
for (int i = 0; i < threadArr.Length; i++)
{
threadArr[i] = new Thread(new ParameterizedThreadStart(Test));
threadArr[i].Start(i);
Thread.Sleep(5);
}
Console.ReadLine();
}
static void Test(object obj)
{
//mt.WaitOne();
Console.WriteLine(obj.ToString());
//mt.ReleaseMutex();
}
}
}