8 / 2 / 1
Регистрация: 10.08.2011
Сообщений: 68
|
||||||
1 | ||||||
.NET 4.x Собственный поток для каждого Listbox.Items01.11.2016, 01:39. Показов 496. Ответов 3
Метки нет Все метки)
(
В моём примере каждый поток обрабатывает каждое значение из ListBox1:
ВАЖНО!!! Ithem-ов в ListBox1 может быть намного больше, поэтому писать для каждого свой Sub() не вариант!!! Подскажите, как быть?
0
|
|
01.11.2016, 01:39 | |
Ответы с готовыми решениями:
3
ListBox: Свойство Items помечено как ReadOnly
|
Администратор
![]() |
||||||
01.11.2016, 02:07 | 2 | |||||
Sega71, вот так, но толку от такой многопоточности очень мало т.к. у всех потоков будет одно узкое место - вызов Invoke. При большом кол-ве элементов это решение скорее всего будет работать медленнее чем один поток.
1
|
8 / 2 / 1
Регистрация: 10.08.2011
Сообщений: 68
|
|||||||||||||||||||||
01.11.2016, 16:28 [ТС] | 3 | ||||||||||||||||||||
OwenGlendower, Спасибо, код работает, но есть одно "НО": на время выполнения форма зависает, как от этого избавиться?
Пришла в голову такая мысль: отследить, если предыдущий поток завершен, то запустить следующий, но не знаю как работать с номерами потоков:
C одним потоком тоже самое - форма висит до завершения работы со всеми ListBox.Items даже при проверке "жив" ли поток:
0
|
Администратор
![]() |
|
01.11.2016, 19:01 | 4 |
Sega71, раз единственное что делает твой код это обновление UI то никакой пользы от потоков здесь нет. Почему ты решил их применять?
Invoke делает свою работу в контексте UI потока. Пока он работает UI не может ообновляться. Если делать вызовы очень часто как в моем примере, то приложение неизбежно подвиснет. При большом количестве элементов имеет смысл переключиться в виртуальный режим. Это проверка всегда вернет True т.к. новый поток по определению "не живой".
0
|
01.11.2016, 19:01 | |
Помогаю со студенческими работами здесь
4
Пустой Список Элементов Редактора Коллекции: Items при создании ContextMenu для ListBox Свой компонент от ListBox. Не могу задать свой тип для Items ListBox и items ListBox и items Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |