Привет, у меня есть веб-сервис, который выполняет огромные вычисления и занимает больше минуты.
Я сгенерировал прокси-файл веб-службы, а затем со стороны моего клиента я использую dll (конечно, я сгенерировал прокси dll).
Мой код на стороне клиента
TimeSeries3D t = new TimeSeries3D();
int portfolioId = 4387919;
string[] str = new string[2];
str[0] = "MKT_CAP";
DateRange dr = new DateRange();
dr.mStartDate = DateTime.Today;
dr.mEndDate = DateTime.Today;
Service1 sc = new Service1();
t = sc.GetAttributesForPortfolio(portfolioId, true, str, dr);
Но так как сервер занимает много времени для вычисления, через 1 минуту я получаю сообщение об ошибке
CLR не удалось перейти из контекста COM 0x33caf30 в контекст COM 0x33cb0a0 в течение 60 секунд. Поток, которому принадлежит целевой контекст / квартира, скорее всего, либо делает ожидание без перекачки, либо обрабатывает очень длительную операцию без перекачки сообщений Windows. Эта ситуация, как правило, оказывает негативное влияние на производительность и может даже привести к тому, что приложение перестает отвечать на запросы или использование памяти постоянно увеличивается с течением времени. Чтобы избежать этой проблемы, все потоки однопоточных квартир (STA) должны использовать примитивы перекачки (такие как CoWaitForMultipleHandles) и регулярно перекачивать сообщения во время длительных операций.
Пожалуйста, подскажите мне, что делать?
Спасибо