Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > InvokeMember и многопоточность |
Автор: Wanderer2019 6.7.2007, 16:18 | ||||||
Предыдущую тему можно удалять... В чем проблема разобрался... Задача: Обработать большой файл Excel и записать данные в какое то хранилище. Решение: Для работы с файлом выбрал метод позднего связывания. т.е. вытаскиваю данные об объектах через
Для обработки файла написал рекурсивную функцию, которую вызываю в потоке. Чтобы передать в функцию параметры использую глобальные переменные. И рекурсивню вызываю из обычной... т.е. получается что то вроде такого:
В процессе выполнения поток вызывается и зависает на строчке:
С чем может быть проблемма??? Как InvokeMember конфликтует с тем, что функция запускается из потока? |
Автор: mr.DUDA 6.7.2007, 20:36 |
Может "виснуть" (вылетать, на самом деле) из-за необработанного исключения в Invoke. Не мешало бы завернуть InvokeMember в блок try..catch и глянуть что там получается. |
Автор: Wanderer2019 6.7.2007, 22:45 |
mr.DUDA, ну вот в чем и проблема, что не используя многопоточность все работает отлично... как только засовываю в поток виснет при первом же обращении к Invoke. |
Автор: mr.DUDA 9.7.2007, 17:39 |
А в отладке посмотреть ? В конце концов, можно приаттачиться к процессу и нажать Pause Debug - в Threads покажет где находится каждый поток. |