List(Of T) 中的 StackOverflow

发布于 2024-09-16 16:55:04 字数 841 浏览 6 评论 0原文

我有一个在 ASP.NET (VB.NET) 中使用 Lucene.net 的程序,当您搜索一个术语时,结果存储在 Lucene.net 数据结构“hits”中。

我想将命中读入数据结构并使用它们,然后将它们显示在 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)。我听说这应该可以解决问题,但事实并非如此 - 现在我很困惑,不知道该怎么办 - 有人可以帮我吗?

I have a program that uses Lucene.net in ASP.NET (VB.NET), when you search a term, results are stored in the Lucene.net data structure "hits".

I want to read out the hits into an data structure and work with them, after that I display them in a DataGrid.

By searching a term with a lot of results, often (but not always) there is an error by following code :

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

I checked the server; it's a dwh server and has no problems to execute the program.

At first I used a ReDim Array, but now I use a List(Of T). I heard that should solve the problem, but it doesn't - now I'm very confused and don't know what to do-
can someone help me please?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

十年九夏 2024-09-23 16:55:04

更改 Catch 块,以便您实际上可以看到此处发生的情况:

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

您可能不会在此处收到 StackOverflowException

Change the Catch block so that you actually can see what is happening here:

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

You are probably not getting a StackOverflowException here.

丿*梦醉红颜 2024-09-23 16:55:04

我的浏览器崩溃了,所以我必须以访客身份编写:<对不起。

我尝试过:

抛出了“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 服务器,应该可以...)

谢谢

my browser crashed, so i have to write as an guest : < sorry.

i tried that:

Exception of type 'System.OutOfMemoryException' was thrown.

now i have an correct for loop, with only one line of code in it

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)))) 

so what happened? (the server is an dwh server, it should make it ...)

thanks

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文