Frage : OutOfMemoryException, wenn Benutzer von der ANZEIGE gelesen werden

Hallo schrieb experts

I Methode, die Benutzer von der ANZEIGE liest und ihre Daten in das SortedList setzte. Jedoch nachdem sie liest, geworfen die moreless Ausnahme OutOfMemory mit 3000 Benutzern. Kann jemand dieses Problem lösen?

Method, das ich schrieb, um Benutzer zu lesen, gezeigt below

Thanks für alles help
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
Class UserData
    Allgemeines nGuid als Int64 = 0
    Allgemeines csLogin als Schnur = ""
    Allgemeines csCommonName als Schnur = ""
    Allgemeine cUserGroups als Collections.Generic.List (der Schnur)
  Enden-Kategorie
  Schwaches m_cUsersColl als Collections.Generic.SortedList (der Schnur, UserData)


VorReadADUsers ()
    Wenn Me.dc_address.Text = "" dann
      MsgBox („Einsatzbedieneradresse“)
      Unterseeboot herausnehmen
    Beenden wenn

    Wenn Me.dc_path.Text = "" dann
      MsgBox („Weg des Einsatzes LDAP“)
      Unterseeboot herausnehmen
    Beenden wenn

    Wenn Me.dc_flt.Text = "" dann
      MsgBox („Einsatzfilter“)
      Unterseeboot herausnehmen
    Beenden wenn

m_cUsersColl = neues Collections.Generic.SortedList (der Schnur, UserData)
    m_cUsersColl.Clear ()

    Schwaches oRoot als DirectoryEntry = neues DirectoryEntry („LDAP: /“ u. dc_address. Text u. „/“ u. dc_path. Text)

    Schwaches oSearcher als DirectorySearcher = neues DirectorySearcher (oRoot)
    Schwache oResults als SearchResultCollection
    Schwaches oResult als SearchResult

    oSearcher.PageSize = 5000

    Versuch

      Schwaches nUserCount = 0

      oSearcher.Filter = dc_flt. Text

      oSearcher.PropertiesToLoad.Add („uid“)
      oSearcher.PropertiesToLoad.Add („KN“)
      oSearcher.PropertiesToLoad.Add („sAMAccountName“)
      oSearcher.PropertiesToLoad.Add („memberOf“)

      oResults = oSearcher.FindAll ()
      Für jedes oResult in den oResults

        Wenn nicht oResult.GetDirectoryEntry (). Eigenschaften („KN“). Wert = "" dann

          nUserCount = nUserCount + 1

          Schwaches cUserData als UserData = neues UserData
          cUserData.nGuid = oResult.GetDirectoryEntry (). Eigenschaften („uid“). Wert
          cUserData.csCommonName = oResult.GetDirectoryEntry (). Eigenschaften („KN“). Wert
          cUserData.csLogin = oResult.GetDirectoryEntry (). Eigenschaften („sAMAccountName“). Wert
          cUserData.cUserGroups = neue Collections.Generic.List (der Schnur)

          Schwaches csGroupString als Schnur = ""
          Schwaches nMemberOfCnt = 0
          Für nMemberOfCnt = 0 zu oResult.GetDirectoryEntry (). Eigenschaften („memberOf“). Zählimpuls - 1

            Schwaches csGroupName als Schnur = C (oResult.GetDirectoryEntry (). Eigenschaften („memberOf“) (nMemberOfCnt), Schnur)
            Schwaches nStartIdx = csGroupName.IndexOf („=“, 1)
            Schwaches nEndIdx = csGroupName.IndexOf („,“, 1)

            csGroupString = ""
            Wenn nStartIdx > 0 und nEndIdx > 0 und nEndIdx > nStartIdx dann
              csGroupString = csGroupName.Substring (nStartIdx + 1, nEndIdx - nStartIdx - 1)
            Beenden wenn

            Wenn csGroupString <> "" dann
              cUserData.cUserGroups.Add (csGroupString)
            Beenden wenn
          Zunächst

          m_cUsersColl.Add (cUserData.csLogin, cUserData)
        Beenden wenn
      Zunächst

      MsgBox („Suche beendete. Gefunden“ u. nUserCount u. „users.")
    Fang ex als Ausnahme
      MsgBox („Suche unterbrach mit Störung: “ u. ex. Mitteilung)
    Enden-Versuch
  Enden-Unterseeboot

Antwort : OutOfMemoryException, wenn Benutzer von der ANZEIGE gelesen werden

0.jpg verwenden, um ein größeres Bild, so zu erhalten:

http://img.youtube.com/vi/J4YjmwCs6H0/0.jpg
Weitere Lösungen  
 
programming4us programming4us