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

TextBox и 100 потоков

08.02.2018, 23:41. Показов 2438. Ответов 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
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 17:54
Студворк — интернет-сервис помощи студентам
dimasik9281, а вы когда редактируете, тоже идентификатор передаёте элемента в метод? если да, то поток который редактирует может ещё не знать о созданном объекте, и тогда будет ошибка
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 18:22  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
вы когда редактируете, тоже идентификатор передаёте элемента в метод? если да, то поток который редактирует может ещё не знать о созданном объекте, и тогда будет ошибка
я просто беру и обращаюсь к нему
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 19:18
dimasik9281, если просто элемент то должно всё нормально быть, но если передаёте как в начале писали индексатор его из коллекции то возможна ошибка
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 19:46  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
росто элемент то должно всё нормально быть, но если передаёте как в начале писали индексатор его из коллекции то возможна ошибка
Скажи, пожалуйста, почему у меня так создаются потоки ?
до 6 нормально, а потом просто шлак ?
C#
1
2
3
4
5
6
7
  for (var a = 0; a < dataGridView1.Rows.Count; a++)
               {
                    
                   task[a] = new Task(() => { pot?.Invoke(Gsend, Sit, a); });
                   task[a].Start();
                    Thread.Sleep(300);
               }
Миниатюры
TextBox  и 100 потоков  
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 20:56
dimasik9281, есть предположение что переменная pot на некоторых иттерациях пустая и поток соответственно не стартует. а следующий стартует уже с увеличенной переменной.

И зачем вы в слип отправляете?
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 20:58  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
предположение что переменная pot на некоторых иттерациях пустая и поток соответственно не стартует. а следующий стартует уже с увеличенной переменной
Где можно свами связаться кроме форума ?
Я же просто взял и передал метод напрямую и всеравно ошибка .
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 21:02
dimasik9281, до понедельника уже нигде, все контакты на работе, на домашнем компе не держу, я к тому, чт овы привели пример кода, и там переменная Pot не известно что за она, и зачем вы останавливаете текущий поток в этом цикле?
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 21:03  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
до понедельника уже нигде, все контакты на работе, на домашнем компе не держу, я к тому, чт овы привели пример кода, и там переменная Pot не известно что за она, и зачем вы останавливаете текущий поток в этом цикле?
я уже пот не переделаю, уже просто напрямую поставил метод, который хочу выпонлять впотоке
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 21:30
попробуйте вот так:

C#
1
2
3
4
5
6
7
for (var a = 0; a < dataGridView1.Rows.Count; a++)
               {
                   int taskData = a; // занесём а в отдельную переменную
                   task[a] = new Task(() => { pot?.Invoke(Gsend, Sit, taskData ); }); // и тут будем использовать эту переменную
                   task[a].Start();
                    Thread.Sleep(300);
               }
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 21:31  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
for (var a = 0; a < dataGridView1.Rows.Count; a++)
* * * * * * * *{
* * * * * * * * * *int taskData = a; // занесём а в отдельную переменную
* * * * * * * * * *task[a] = new Task(() => { pot?.Invoke(Gsend, Sit, taskData ); }); // и тут будем использовать эту переменную
* * * * * * * * * *task[a].Start();
* * * * * * * * * * Thread.Sleep(300);
* * * * * * * *}
А зачем вы Thread.Sleep(300); указали ?
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 21:33
dimasik9281, это полный копипаст Вашего примера кода, только с двумя правками
0
1 / 1 / 0
Регистрация: 21.09.2013
Сообщений: 286
09.02.2018, 21:37  [ТС]
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
лный копипаст Вашего примера кода, только с двумя правками
вы оказались правы и ваши поправки верны! и работает, можете расписать почему нужно создавать переменую в нее кидать норм и уже передавать впоток ?
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.02.2018, 21:48
dimasik9281, не помню уже сам где видел, но наталкивался что иттератор с тасками запоминает очень рандомно значение, на стэковерфлоу как-то была такая тема, сейчас не найду уже
0
 Аватар для Lexeq
1151 / 743 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
09.02.2018, 23:08
dimasik9281, гуглите "замыкания С#".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.02.2018, 23:08

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Новые блоги и статьи
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru