Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286

TextBox и 100 потоков

08.02.2018, 23:41. Показов 2234. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что будет, если 100 потоков обратятся к TextBox ? нужна ли синхронизация например

C#
1
    lock ("add_text2") e?.Invoke((Action)(() => { e.MaskBox.AppendText("[" + DateTime.Now.ToLongTimeString() + "] " + text + "\r\n"); }));
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.02.2018, 23:41
Ответы с готовыми решениями:

Разработать программу, генерирующую n потоков в пуле потоков CLR
Добрый вечер. Решил поделать старые лабораторные, которые мне уже давно нужно было сдавать, но встрял на одном задании: "Разработать...

Построить вертикальную стрелку, направленную из точки (100, 100) в точку (100, 50)
Стрелка состоит из отрезка прямой и равностороннего треугольника-острия. Сторона треугольника, пересекающая отрезок, образует с ним прямой...

Синхронизация потоков на элементарном уровне (переключение потоков)
в общем разбираюсь с потоками, на сколько понял мне нужен lock Вот имеется просто пример public void RunAdd() ...

53
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
09.02.2018, 02:50
Цитата Сообщение от dimasik9281 Посмотреть сообщение
Что будет, если 100 потоков обратятся к TextBox ?
что мешает написать прототип и запустить? Боитесь прорвать пространственно-временной континиум?

по теме: учитывая, что юзаете Invoke, вместо BeginInvoke, возможно наткнетесь на взаимо лок, если будет обращение к lock из потока окна. Еще может форма подвиснуть.

Цитата Сообщение от dimasik9281 Посмотреть сообщение
нужна ли синхронизация
не зная контекста задачи, ничего путного не скажу.
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 11:53  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
итывая, что юзаете Invoke, вместо BeginInvo
у меня почему -то выкидывает ошику

C#
1
2
3
4
public static void add_text(TextEdit e, string text, int j, BarItem s = null)
        {
           e?.Invoke((Action)(() => { e.MaskBox.AppendText("[" + DateTime.Now.ToLongTimeString() + "] " + " [" + Send.Gsend.dataGridView1[1, j].Value + "] " + text + "\r\n"); if (s != null) s.Caption = (Convert.ToInt32(s.Caption) + 1).ToString(); }));
        }

когда я со сто потоков выводу текст . Ошибка типо:
индек находится в не зоне, а когда в 4 или 6 потоков, то норм, в чем может быть проблема ?
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 12:14  [ТС]
вот сама ошибка. Хотя все находится в пределах, но пишет, что ошибка
Миниатюры
TextBox  и 100 потоков  
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 12:21
Цитата Сообщение от dimasik9281 Посмотреть сообщение
Хотя все находится в пределах
Если пишет то не находится

Какое значение имеет переменная j и сколько значений в гриде?
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 12:24  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
Если пишет то не находится
Какое значение имеет переменная j и сколько значений в гриде?
11 и j 11 , дело в том, когда с 4 потоков обращаешься, то норм, если больше, то ошибка
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 12:28
Цитата Сообщение от dimasik9281 Посмотреть сообщение
11 и j 11
вот Вам и ошибка индекс доступа к 11 элементу грида должен быть 10, а не 11

Добавлено через 52 секунды
dimasik9281, а по поводу "больше" потоков покажите как вы вызываете данную функцию именно, как вы формируете параметры для неё.
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 12:51  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
dimasik9281, а по поводу "больше" потоков покажите как вы вызываете данную функцию именно, как вы формируете параметры для неё.
обычный таск
Миниатюры
TextBox  и 100 потоков  
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 12:58  [ТС]
Вот эта ошибка, я уже и так и так ее проверил .
Все находится в зоне, а вылетает с ошибкой
Миниатюры
TextBox  и 100 потоков  
0
Эксперт .NET
 Аватар для Rius
13158 / 7717 / 1679
Регистрация: 25.05.2015
Сообщений: 23,513
Записей в блоге: 14
09.02.2018, 12:59
Цитата Сообщение от dimasik9281 Посмотреть сообщение
Что будет, если 100 потоков
Зачем нужны 100 потоков сразу?
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 13:03  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
ачем нужны 100 потоков сразу?
Такая задача
0
Эксперт .NET
 Аватар для Rius
13158 / 7717 / 1679
Регистрация: 25.05.2015
Сообщений: 23,513
Записей в блоге: 14
09.02.2018, 13:19
Объявите задачу полностью, пожалуйста. Саму задачу, а не ваш метод решения.
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 13:24
вот на втором скриншоте ровно то что я Вам описывал индексатор не должен быть равен количеству, а у Вас равны, следовательно ошибка у Вас передаче индексов.
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 13:26  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
явите задачу полностью, пожалуйста. Саму задачу, а не ваш метод решения.
задача. Есть текстовое поле и в него нужно выводить текст из 100 потоков имя потока брать из dataGridView1

Добавлено через 2 минуты
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
вот на втором скриншоте ровно то что я Вам описывал индексатор не должен быть равен количеству, а у Вас равны, следовательно ошибка у Вас передаче индексов.

C#
1
2
3
4
5
6
     for (var a = 0; a < dataGridView1.Rows.Count; a++)
               {
                 
                   new System.Threading.Tasks.Task(() => { pot?.Invoke(this, Sit, a); }).Start();
                   Thread.Sleep(100);
               }
не вижу ошибки
0
Эксперт .NET
 Аватар для Rius
13158 / 7717 / 1679
Регистрация: 25.05.2015
Сообщений: 23,513
Записей в блоге: 14
09.02.2018, 13:28
dimasik9281, не верю, это ваше видение решения. Потому что в коде есть упоминания рассылки каких-то сообщений типа вконтакте.
100 потоков сигнализирует о неправильном решении.
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 13:31
а почему ты на 2 скриншоте обращаешься к форме которая тебе пришла, а количество элементов получаешь вообще от другой? может ты с этим где-то накосячил, и у тебя дата грид не успевает добавить/удалить/обновить данные? или вообще не в курсе что ты подобное делаешь?
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 13:33  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
и у тебя дата грид не успевает добавить/удалить/обновить данные? или вообще не в курсе что ты подобное делаешь?
Я передаю форум в метод
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 13:37
это я прекрасно вижу, я спросил почему ты проверяешь количество элементов не у этой формы, а через Send и что-то там дальше, лень перебирать со скринов.
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 13:39  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
это я прекрасно вижу, я спросил почему ты проверяешь количество элементов не у этой формы, а через Send и что-то там дальше, лень перебирать со скринов.
Это я на быстрою руку накинул в некоторых методах просто обращаюсь к форме.
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 13:45
Всё же я склонен больше к тому, что данные не успевают обновляться, либо то откуда вы считываете их не знает об этих изменениях, и в один прекрасный момент вы отдаёте ему тот идентификатор которого не существует.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.02.2018, 13:45
Помогаю со студенческими работами здесь

Синхронизация потоков: проблема гонки потоков
Есть проблема в синхронизации потоков, которую я не знаю, как решить. Точнее у меня получается типичная гонка потоков. Есть функция,...

Обработка массива из 100 случайных чисел от -100 до 100
Определите, какое число встречается в этом массиве чаще всего и выведите это число. Если таких чисел несколько, необходимо вывести их все в...

TextBox. Ввод только цифр от 16 до 100
задача: ввод только цифр от 16 до 100 как можно регулярным выражением сделать от 16-100 так не работает! или может еще какой способ...

Как запретить ввод в TextBox числа, большего 100
Извиняюсь, но не нашел ответа на форуме. в Общем есть калькулятор. И в 1 из текст боксов где пользователю нужно вписать значение, мне...

Как заполнить 100 TextBox через цикл VBA в Word
Есть 100 текстбоксов в ворде. Нужно через цикл изменить параметр TextBox.Text, но я не знаю как обратиться к нему.


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru