Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ОШИБКА (ничего не понимаю) 
:(
    Опции темы
HellMasterHaiL
Дата 1.2.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



привет всем!)

вот столкнулся с такой вот ошибкой:
Цитата

CLR не удалось перейти из COM-контекста 0x1a09a0 в COM-контекст 0x1a0b10 за 60 секунд. Наиболее вероятно, что поток, владеющий контекстом/апартаментом назначения, находится в режиме ожидания или выполнения очень длительной операции без прокачки сообщений Windows. Обычно эта ситуация отрицательно влияет на производительность и даже может привести к зависанию приложения или чрезмерному расходованию памяти. Чтобы избежать этой проблемы, все потоки однопоточного апартамента (STA) должны использовать примитивы ожидания для прокачки (например, CoWaitForMultipleHandles) и периодически прокачивать сообщения во время длительных операций.


самое инетересное, не указывается в какой строке ошибка, не могу отловить даже в каком месте процедуры ЭТО возникает, т.к. ошибка вылазить не каждый раз (так же не могу определить в какой ситуции ЭТО происходит, один раз компилю - все нормально, второй раз - ЭТО)

пишу на 2005й студии, в процедуре есть пару циклов и также филю несколько таблиц в датасете. как я понимаю, подобная ошибка может возникать в циклических блоках...

так вот вопрос, как это обойти/исправить и что вообще CoWaitForMultipleHandles

PM MAIL ICQ   Вверх
ivashkanet
Дата 1.2.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



 smile HellMasterHaiL, темы нужно называть в соответствии с их смыслом  smile  
 smile Название темы должно отражать ее суть smile 

Цитата(HellMasterHaiL @  1.2.2007,  14:15 Найти цитируемый пост)
CoWaitForMultipleHandles

У нас это, скорее всего, будет Aplication.DoEvents(), расставленное в критических местах программы.
Эта процедура поможет
Цитата(HellMasterHaiL @  1.2.2007,  14:15 Найти цитируемый пост)
периодически прокачивать сообщения во время длительных операций

Пример:
Код

While True
 // что-то делаем не очень громоздкое
 Application.DoEvents()
End While


Либо производить эти действия в другом потоке

PM MAIL WWW ICQ   Вверх
HellMasterHaiL
Дата 1.2.2007, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



ivashkanet, извини, но как обозвать тему я так и не сообразил...

спасибо, но как узнать в какие места необходимо сунуть Application.DoEvents()?
а если еще эти места находятся внутри кода, сгенерированного конструктором?

PM MAIL ICQ   Вверх
ivashkanet
Дата 1.2.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Цитата(HellMasterHaiL @  1.2.2007,  15:39 Найти цитируемый пост)
а если еще эти места находятся внутри кода, сгенерированного конструктором?

Как вообще такое может быть?
Ты видел чтобы конструктор использовал циклы или трудоемкие процедуры?
Единственное что он делает --- это создание компонентов, расположение их на форме и изменение их свойств.
Цитата(HellMasterHaiL @  1.2.2007,  15:39 Найти цитируемый пост)
 но как узнать в какие места необходимо сунуть Application.DoEvents()?

В тех местах где ты выполняешь длительные и ресурсоемкие операции. Чтение из базы, обработка данных, ...


Цитата(HellMasterHaiL @  1.2.2007,  15:39 Найти цитируемый пост)
ivashkanet, извини,

Это просто правила, причем тут я smile 
Цитата(HellMasterHaiL @  1.2.2007,  15:39 Найти цитируемый пост)
как обозвать тему я так и не сообразил...

Например: Ошибка "не удалось перейти из COM-контекста 0x1a09a0 в COM-контекст 0x1a0b10 за 60 секунд" (разделить на две строчки)


PM MAIL WWW ICQ   Вверх
HellMasterHaiL
Дата 1.2.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



ivashkanet, чтение из БД я произвожу штатными (конструкторскими) способами, есть парочка запросов, которые читают большой объем инфы(я бы сказал очень большой, т.к. для некоторых ТейблАдаптеров пришлось вручную увеличивать КоннекшенТаймАут), а в коде это занимает всего навсего одну строчку :
Код

lc_Count = Me.CheloveckTableAdapter.Fill(Me.DS_SocDefence.Cheloveck)

и есть у меня предположения (может быть я совсем не прав), что именно одна из подобных строк и вызывает подобное сообщение...
если идти пошагово (встав на эту строку и нажав кнопку F11) я естественно попадаю в DataSet.Disinger.vb (код згенерированный конструктором), так вот при выполнении фила на ТейблАдаптере мне ведь не поможет:
Код

lc_Count = Me.CheloveckTableAdapter.Fill(Me.DS_SocDefence.Cheloveck)
Application.DoEvents()

или поможет?


PM MAIL ICQ   Вверх
ivashkanet
Дата 1.2.2007, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Цитата(HellMasterHaiL @  1.2.2007,  16:19 Найти цитируемый пост)
или поможет?

Попробуй  smile 

А вообще попробуй брать из БД только необходимую информацию
PM MAIL WWW ICQ   Вверх
HellMasterHaiL
Дата 1.2.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



Цитата(ivashkanet @ 1.2.2007,  17:21)
Попробуй   

А вообще попробуй брать из БД только необходимую информацию

спасибо, вроде помогло, осталось проверить при большой загрузке компа

в том то и весь кирпич, что беру необходимый минимум, но этот минимум большого размера ( 16 секундный запрос на прямую с сервера выдает 356 записей по 86 полей, учавствует около 12-15 таблиц)...
вот так вот( 
а выковыривать все адаптеры - замучаюсь)


Это сообщение отредактировал(а) HellMasterHaiL - 1.2.2007, 17:55
PM MAIL ICQ   Вверх
ivashkanet
Дата 1.2.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Цитата(HellMasterHaiL @  1.2.2007,  16:52 Найти цитируемый пост)
в том то и весь кирпич, что беру необходимый минимум, но этот минимум большого размера ( 16 секундный запрос на прямую с сервера выдает 356 записей по 86 полей, учавствует около 12-15 таблиц)...вот так вот( а выковыривать все адаптеры - замучаюсь)

Тогда можно заполнение датасета с помощью Me.CheloveckTableAdapter.Fill(Me.DS_SocDefence.Cheloveck) 
выделить в отдельный поток. Но, судя по всему, это для тебя приличный пласт знаний.

Если интересно --- пиши, покумекаем smile

Добавлено @ 18:16 
Цитата(ivashkanet @  1.2.2007,  17:15 Найти цитируемый пост)
выделить в отдельный поток.

А приложение немножко "подвесить", показав только прогрессбар smile
PM MAIL WWW ICQ   Вверх
HellMasterHaiL
Дата 1.2.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



ivashkanet, интересно, еще как интересно, рассказывай давай))) , если конечно не в падлу, или дай линку на литру (лучше русскую \=-) )
PM MAIL ICQ   Вверх
ivashkanet
Дата 1.2.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Вот пока что нашел. Прочитай, потом будем капать дальше.
Что будет непонятно --- спрашивай в отдельной теме smile

А вообще Google
PM MAIL WWW ICQ   Вверх
HellMasterHaiL
Дата 1.2.2007, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 181
Регистрация: 9.8.2006
Где: Россия, МО, г. Юб илейный

Репутация: нет
Всего: 1



премного благодарен
PM MAIL ICQ   Вверх
Bladerender
Дата 10.9.2010, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 19.7.2007

Репутация: нет
Всего: нет



Цитата(ivashkanet @ 1.2.2007,  18:54)
Вот пока что нашел. Прочитай, потом будем капать дальше.
Что будет непонятно --- спрашивай в отдельной теме ;-)

А вообще Google

off: а я вот в гугле эту тему нагуглил, так что перед тем как в гугл идти, нуна подумать, не приведет ли он тебя в твою же тему. 
PM MAIL   Вверх
Pilger
Дата 11.9.2010, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 10.5.2008
Где: Германия

Репутация: нет
Всего: нет



И к чему это? Ты на дату последнего сообщения смотрел?


--------------------
Ein Leben nach der Schleife existiert, nur wenn die Schleife terminiert.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.