Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160

Вопрос по Очередям

05.10.2011, 19:05. Показов 3275. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В обработчике события записано так:
C#
1
2
3
4
5
            Monitor.Enter(TicksBuffer);
            TicksBuffer.Enqueue(new BufferedTick(symbol, datetime, price, volume, action));
            Monitor.Exit(TicksBuffer);
            
            new Thread(Scan).Start();
Сам Scan такой:
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void Scan()
        {
            while (IsWork)
            {
                if (Monitor.TryEnter(TicksBuffer))
                {
                    BufferedTick tempTick = TicksBuffer.Dequeue();
                    Monitor.Exit(TicksBuffer);
                    // Обработка данных
                }
            }
        }
Почему пишет очередь пуста?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.10.2011, 19:05
Ответы с готовыми решениями:

Задача по очередям. В текстовом файле содержатся записи о сотрудниках фирмы
В текстовом файле содержатся записи о сотрудниках фирмы. Каждый сотрудник характеризуется фамилией, именем, отчеством, полом, возрастом и...

Вопрос по SetParent (поэтому, наверное, это вопрос к NickStaves)
Есть набор форм, назовём их 'интерфейсными'. Есть отдельная форма, назовём её 'хранилищем'. Сама по себе она нигде не используется: лишь...

VBulletin [ВОПРОС]: Меню и вопрос при регистрации
Помогите пожалуйста. У меня vbulletin 4.0.7 и после установки в верхнем меню есть лишняя навигация. Например: Главная Форум Blogs ...

24
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
12.10.2011, 17:34  [ТС]
Студворк — интернет-сервис помощи студентам
C#
1
2
Thread ThreadScan = new Thread(new ThreadStart(Scan));
ThreadScan.IsBackground = true;
Записал вот так, список FT_Ticks теперь опять пустой . Я что-то не правильно сделал?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.10.2011, 17:39
Может ThreadScan.Start() забыли?
1
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
12.10.2011, 18:08  [ТС]
kolorotur, посоветуйте, пожалуйста, с точки зрения производительности как лучше всего поступить?
Есть еще три сервера, с которыми нужно сделать примерно тоже самое. Т.е. я аналогично создаю TicksBuffer2 и TicksBuffer3, методы Scan2 и Scan3, по сути ничего не меняя в их коде кроме самого названия буфера и метода и запускаю все три потока по очереди, например, при клике мышкой:
C#
1
2
3
4
5
6
7
8
9
10
11
Thread ThreadScan = new Thread(new ThreadStart(Scan));
ThreadScan.IsBackground = true;
ThreadScan.Start();
 
Thread ThreadScan2 = new Thread(new ThreadStart(Scan2));
ThreadScan2.IsBackground = true;
ThreadScan2.Start();
 
Thread ThreadScan3 = new Thread(new ThreadStart(Scan3));
ThreadScan3.IsBackground = true;
ThreadScan3.Start();
IsBackground никак не влияет на приоритетность потоков?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
12.10.2011, 18:17
Если ничего кроме названия не меняется, то и смысла нет плодить одинаковые методы.
Создаете один и прописываете буфер и очередь как аргументы.

IsBackground не влияет никак. Оно только делает поток "зависимым" от основного. Если основной поток прекращает работу, то все потоки, имеющие свойство IsBackground=true, умирают вместе с ним, даже если заблокированы.
1
2 / 2 / 0
Регистрация: 04.04.2011
Сообщений: 160
12.10.2011, 18:34  [ТС]
Кроме названия будет еще другой BufferedTick с другими параметрами. Вместо (symbol, datetime, price, volume, action) будут другие. В этом случае придется создавать три буфера и три метода т.к. в итоге нужно получить три списка с разными элементами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.10.2011, 18:34

Вопрос о картинках, вопрос о формулах
Всем доброго времени суток! Как обычно глупые вопросы... Вопрос первый, с сайта копируется информация (картинки + циферки ;-)) Так...

Вопрос по массивав, "институтский" вопрос.
Готовлюсь к летней сессии по программированию. С++ Есть такая вот задачка (привожу как есть) В документации подобного не...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru