Переполнение стека в списке (Of T) - PullRequest
0 голосов
/ 30 августа 2010

У меня есть программа, которая использует Lucene.net в ASP.NET (VB.NET), когда вы ищете термин, результаты сохраняются в структуре данных Lucene.net "хиты".

Я хочусчитывать попадания в структуру данных и работать с ними, после чего я отображаю их в виде DataGrid.

При поиске термина с большим количеством результатов часто (но не всегда) возникаетошибка по следующему коду:

For i = 0 To results - 1 Step 1
    Try
        Dim tmpobj As New object_hit(( _
            hits.Doc(i).Get("title") + _
            hits.Doc(i).Get("doc_typ")), _
            hits.Doc(i).Get("pfad"), _
            hits.Doc(i).Get("last_change"), _
            hits.Doc(i).Get("doc_typ"), _
            CStr(hits.Score(i)))    
        list_of_results.Add(tmpobj) 'works'
    Catch
        meldung.Text = "Stackoverflow- zuviele Ergebnisse "
        myexception = True
    End Try

Я проверил сервер;это сервер dwh, и у него нет проблем с выполнением программы.

Сначала я использовал ReDim Array, но теперь я использую List(Of T).Я слышал, что это должно решить проблему, но это не так - теперь я очень смущен и не знаю, что делать - может кто-нибудь помочь мне, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 31 августа 2010

мой браузер вышел из строя, поэтому я должен написать в качестве гостя: <извините. </p>

Я попробовал это:

Возникло исключение типа 'System.OutOfMemoryException'.

теперь у меня есть правильный цикл for, в котором только одна строка кода

list_of_results.Add(New object_hit((hits.Doc(i).Get("title") + hits.Doc(i).Get("doc_typ")), hits.Doc(i).Get("pfad"), hits.Doc(i).Get("last_change"), hits.Doc(i).Get("doc_typ"), CStr(hits.Score(i)))) 

так что случилось? (сервер является сервером dwh, он должен это сделать ...)

спасибо

0 голосов
/ 30 августа 2010

Измените блок Catch, чтобы вы могли видеть, что здесь происходит:

Catch ex as Exception
    meldung.Text = ex.Message ' or ex.ToString() to see full details '
    throw
End Try

Возможно, вы не получаете StackOverflowException здесь.

...