protected static void MethodForThread(object ob) { MassItem item = (MassItem)ob; int F = item.Data; Console.WriteLine("Поток {0}.Получен новый элемент {1}", Thread.CurrentThread.ManagedThreadId, item.Data); long Facrotial = 1; while (F > 1) { Facrotial *= F; Thread.Sleep(100); Console.WriteLine("Поток {0}.Вычесление! факториал от числа {1} равен {2}", Thread.CurrentThread.ManagedThreadId, item.Data, Facrotial); F--; } item.Fact = Facrotial; Console.WriteLine("Поток {0}.Вычесления завершины! Факториал от числа {1} равен {2}", Thread.CurrentThread.ManagedThreadId, item.Data, item.Fact); }
public void Add(MassItem newElement) { if (newElement.Data < 1) newElement.Data = 1; massive.Add(newElement); ThreadPool.QueueUserWorkItem(MethodForThread, newElement); }