Использовать или мьютекс или монитор для синхронизации потоков - 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д