Re[3]: DataAdapter.Fill(datatable) в отдельном потоке
От: shelkovnikov Россия  
Дата: 25.09.06 07:21
Оценка:
Здравствуйте, tnikolai, Вы писали:

iT>>Попробуйте делать в параллельном потоке Fill в отсоединенный от контролов DataSet, а потом в основном потоке подключать его к гриду или куда там вы его подключаете.


T>В BindingSource перед этим зануляю DataSource, DataMember; выполняю Fill в другом потоке, возвращаю DataSource, DataMember в исходное значение.

T>Не помогает — та же самая ситуация.
T>Может этими компонентами можно работать лишь в том потоке, в котором они созданы?
T>Если это так, то progress bar сделать поистине невозможно.

Попробуйте основной поток приложения сделать MTA, форму открывать в STA (иначе половина COM объектов не работает)
Почему? STA создается один на приложение (как скрытое окно) и все потоки с этим атрибутом синхронизуются через общую оконную функцию: нормального паралелизма нет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.