powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как создать Nunit тест
1 сообщений из 1, страница 1 из 1
как создать Nunit тест
    #38000971
777uragan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я новичок в Nunit///Подскажите как создать тест блокирующей очереди?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
 class Program
    {
        static readonly BlockQueue<int> Queue = new BlockQueue<int>();
        static void Process(object taskName)
        {
            while (true)
            {
                try
                {
                    var item = Queue.Dequeue();

                    Console.WriteLine("{0}: процесс {1}.", taskName, item);
                    Thread.Sleep(100);
                }
                catch (InvalidOperationException)
                {
                    Console.WriteLine("{0} завершён", taskName);
                    return;
                }

            }
        }
        static void Main()
        {
            var tasks = new Task[5];

            for (var i = 0; i < tasks.Length; i++)
            {
                var num = i + 1;
                tasks[i] = Task.Factory.StartNew(() => Process("Поток" + num));
            }
            for (var i = 0; i < 50; i++)
                Queue.Enqueue(i);

            Task.WaitAll(tasks);
            Console.WriteLine("Все потоки закончили работу");
            Console.ReadLine();
        }
    }





Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
amespace ConsoleApplication1
{
    class Product<T>
    {
        readonly T _obj;

        public Product(T obj)
        {
            _obj = obj;
        }

        public T Value { get { return _obj; } }
    }
}





Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
using System.Collections.Generic;

namespace ConsoleApplication1
{
    internal class BlockQueue<T>
    {
        private readonly Queue<Product<T>> _queue;

        public BlockQueue()
        {
            _queue = new Queue<Product<T>>();
        }

        public void Enqueue(T obj)
        {
            lock (_queue)
            {
                _queue.Enqueue(new Product<T>(obj));
            }
        }

        public T Dequeue()
        {
            lock (_queue)
            {
                return _queue.Dequeue().Value;
            }
        }
    }
}
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / как создать Nunit тест
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]