コード例 #1
0
        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);

        }
コード例 #2
0
        public void Add(MassItem newElement)
        {
            if (newElement.Data < 1) newElement.Data = 1;
            massive.Add(newElement);

            ThreadPool.QueueUserWorkItem(MethodForThread, newElement);
        }