С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
1

Программа подвисает, но не выдаёт исключение

26.02.2015, 22:04. Показов 622. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System;
using System.Threading;
 
namespace ConsoleApplication1
{
    
    class Program
    {
        internal static int[] m = new int[2] { 1, 2 };
        private static Random r = new Random();
        static void Main()
        {
            Thread t1= new Thread(Get1);
            t1.Priority = ThreadPriority.Highest;
            Thread t2 = new Thread(Get2);
            t2.Priority = ThreadPriority.Highest;
            Thread t3 = new Thread(Get3);
            t3.Priority = ThreadPriority.Highest;
            t1.Start();
            t2.Start();
            t3.Start();
            Thread s1 = new Thread(Set1);
            s1.Priority = ThreadPriority.Highest;
            Thread s2 = new Thread(Set2);
            s2.Priority = ThreadPriority.Highest;
            Thread s3 = new Thread(Set3);
            s3.Priority = ThreadPriority.Highest;
            Thread s4 = new Thread(Set4);
            s4.Priority = ThreadPriority.Highest;
            s1.Start();
            s2.Start();
            s3.Start();
            s4.Start();
        }
        private static void Get1()
        {
            while(true)
            Console.WriteLine(m[r.Next(0,2)]);
        }
        private static void Get2()
        {
            while (true)
            Console.WriteLine(m[r.Next(0, 2)]);
        }
        private static void Get3()
        {
            while (true)
            Console.WriteLine(m[r.Next(0, 2)]);
        }
        private static void Set1()
        {
            while (true)
                m[r.Next(0, 2)]=1;
        }
        private static void Set2()
        {
            while (true)
                m[r.Next(0, 2)] = 1;
        }
        private static void Set3()
        {
            while (true)
                m[r.Next(0, 2)] = 2;
        }
        private static void Set4()
        {
            while (true)
                m[r.Next(0, 2)] = 2;
        }
    }
}
Во время выполнения вывод в консоли подвисает, но потом снова возобновляется. Почему? Исключения не выдаётся.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2015, 22:04
Ответы с готовыми решениями:

Программа выдает исключение: Вызвано исключение: нарушение доступа для чтения. _Pnext было 0xCCCCCCD0
Доброго времени суток. Пишу игру с помощью SFML, и при внедрении события нажатии кнопки Tab...

Часто, при пинге сервера программа подвисает на 1-2 секунды и выдаёт значение пинга 0
Создал программу для проверки пинга. Часто, при пинге сервера программа подвисает на 1-2 секунды и...

Работа с ReportViewer: после закрытия программа выдает исключение
Здравствуйет! Я не силен в программировании. Поэтому прошу помощи у ВАС. Проблема в следующем: у...

Программа подвисает
Доброго времени суток, возникла такая проблема при добавлении записи в БД. Программа(форма)...

2
11 / 11 / 3
Регистрация: 29.12.2010
Сообщений: 50
26.02.2015, 22:32 2
Просто поскольку вы выставили наивысший приоритет своим потокам. консоли просто не хватает процессорного времени на вывод всех передаваемых ей данных.
1
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
26.02.2015, 22:51  [ТС] 3
Без методов Setx очень быстро выводит. Может ли тут возникнуть коллизия при одновременной записи или одновременном чтении одного и того же элемента?
0
26.02.2015, 22:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2015, 22:51
Помогаю со студенческими работами здесь

Задача о рюкзаках, подвисает программа
И снова здравствуйте! Решаю задачу о рюкзаках на с# в visual studio 2013, прошу не троллить до...

Подвисает программа просмотра изображений и факсов
У меня дней 4-5 назад появилась такая проблема: Программа просмотров изображений и факсов перестала...

_recalloc выдает исключение
Здравствуйте! Помогите, пожалуйста, разобраться из-за чего _recalloc кидает исключение, при l = 2...

Отладчик не выдает исключение
Почему когда я работаю с консольными приложениями, отладчик не хочет переводить меня на строку с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru