Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Eolt
Member

Откуда:
Сообщений: 1480
Есть винформс приложение из одной формы, на форме лежит ListView, добавляю в него строчки. Падаю в отладке с таким сообщением:

 System.InvalidOperationException: 'Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'listView' не из того потока, в котором он был создан


Что за бред? Откуда многопоточность в приложении где ее нет?
16 май 19, 14:01    [21886241]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Eolt
Member

Откуда:
Сообщений: 1480
Падает только в студии, экзешник работает нормально.
16 май 19, 14:02    [21886243]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Eolt,
Докажи что студия ошиблась.
16 май 19, 14:12    [21886257]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Eolt
Member

Откуда:
Сообщений: 1480
Petro123,

По-моему бред творится. Или WinForms по-умолчанию стали многопоточными?
Почему не могу просто заполнить listview данными как делал всегда?
16 май 19, 14:15    [21886265]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Eolt,
Бряк поставь и смотри окно потоков на строке где ошибка
16 май 19, 14:17    [21886269]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3436
Запускаете 2 версии студии, в одной студии открываете свой проект, в другой студии открывает отладчик и подключаетесь к первой студии.
Повторяете ситуацию вызывающую исключение, смотрите в отладчике. Профит.
16 май 19, 14:19    [21886272]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3436
Petro123,

у него ошибка в дизайнере, на сколько я понял, бряк можно поставить только из другого отладчика на студии
16 май 19, 14:19    [21886273]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Может где-то есть асинхронные вызовы по старому паттерну с коллбеками? Поищи просто по всему солюшену регекспом наподобии "\b.*Async\("
16 май 19, 14:22    [21886275]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Eolt
Member

Откуда:
Сообщений: 1480
Хех. В режиме ввода текста появилось новое окно.. Не закрывается.
Кто нибудь видел такие адские глюки студии?

К сообщению приложен файл. Размер - 43Kb
16 май 19, 14:22    [21886276]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
fkthat
Member

Откуда:
Сообщений: 1163
А, все, понял, сорри, это какая-то шляпа самого дизайнера, я думал сама прога падает. В дизайнерах я совсем-совсем не спец. Возможно, какая-то бага в компоненте самом?
16 май 19, 14:24    [21886285]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Eolt
Member

Откуда:
Сообщений: 1480
fkthat,

Нет, ошибка проявляется в моей программе. Когда запускаю ее появляется исключение о попытке доступа из другого потока. Хотя само приложение однопоточное и потоков вообще нет.
Сообщение об ошибке остается висеть даже после остановки отладки.
16 май 19, 14:27    [21886287]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Eolt
Member

Откуда:
Сообщений: 1480
Падает при заполении listView данными. В программе используется COM порты и библиотека ExcelDataReader. В остальном обычное однопоточное Winforms приложение.

К сообщению приложен файл. Размер - 28Kb
16 май 19, 14:31    [21886293]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Eolt
fkthat,

Нет, ошибка проявляется в моей программе. Когда запускаю ее появляется исключение о попытке доступа из другого потока. Хотя само приложение однопоточное и потоков вообще нет.
Сообщение об ошибке остается висеть даже после остановки отладки.


Значит многопоточность все-таки есть, просто какая-то неявная. Как я уже писал, если, например, есть асинхронный вызов чего-то с коллбеком, то, коллбек может выполняться в другом потоке. Или, например, System.Threading.Timer (не тот, что в формс, а тот, что попроще) - та же самая штука. Или ThreadPool.QueueUserWorkItem. В общем, вариантов много.
16 май 19, 14:32    [21886297]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
fkthat
Member

Откуда:
Сообщений: 1163
Eolt,

Отлови по стеку вызовов в исключении, при каком вызове контрола оно кидается и замени этот вызов на Control.Invoke
16 май 19, 14:35    [21886305]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Eolt
Member

Откуда:
Сообщений: 1480
fkthat,

Блин и чтож делать? Поиском найти не удается.
16 май 19, 14:36    [21886306]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Eolt
Member

Откуда:
Сообщений: 1480
fkthat
Eolt,

Отлови по стеку вызовов в исключении, при каком вызове контрола оно кидается и замени этот вызов на Control.Invoke


Ок, попробую
16 май 19, 14:37    [21886309]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Roman Mejtes
Petro123,

у него ошибка в дизайнере, на сколько я понял, бряк можно поставить только из другого отладчика на студии
торопишься. Я не вижу что студия именно а не его код.
16 май 19, 14:42    [21886317]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3436
Petro123,

это не так и важно, 2 студия которая отлаживает первую нормально подгрузит исходники его проекта и сборки его проекта которые загрузил дизайнер, по этому отлаживать можно будет не только саму студию, но и ту часть его кода, которая выполняется в дизайнере.
ошибка как я понимаю возникает только в дизайнере, по этому это самый просто и быстрый способ найти проблему.
16 май 19, 15:05    [21886349]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Roman Mejtes
ошибка как я понимаю возникает только в дизайнере
нет. В режиме отладки.... В коде.
16 май 19, 15:17    [21886365]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
Рантайм в дебаге. Не дизайн тайм в дизайнере.
16 май 19, 15:19    [21886369]     Ответить | Цитировать Сообщить модератору
 Re: Откуда в 'Недопустимая операция в нескольких потоках:' ?  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3436
сейчас в отладчике куча свистелок пердолок для анализа. На счет WF не в курсе, но в WPF есть всякие окошечки для работы с визуальным деревом, утилиты диагностики и прочее "полезное". Попробуйте отключить всё и попробовать запустить еще раз.

еще, возможно, у автора включен бряк поинт на обработанные исключение.
Лезем в окно Exception Settings -> Common Language Runtime Exceptions -> System.InvalidOperationException, снимаем галочку, радуемся жизни
16 май 19, 15:55    [21886408]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить