تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
شرح الكووووووووود
#1
لو تكرمت ان تشرح لي هذا الكود و الادوات المستخدمة 

Private Shared Sub __ENCAddToList(ByVal value As Object)
   Dim list As List(Of WeakReference) = Form18.__ENCList
   SyncLock list
       If (Form18.__ENCList.Count = Form18.__ENCList.CapacityThen
           Dim index As Integer = 0
           Dim num3 As Integer = (Form18.__ENCList.Count - 1)
           Dim i As Integer = 0
           Do While (i <= num3)
               Dim reference As WeakReference = Form18.__ENCList.Item(i)
               If reference.IsAlive Then
                   If (i <> index) Then
                       Form18.__ENCList.Item(index) = Form18.__ENCList.Item(i)
                   End If
                   index += 1
               End If
               i += 1
           Loop
           Form18.__ENCList.RemoveRange(index, (Form18.__ENCList.Count - index))
           Form18.__ENCList.Capacity = Form18.__ENCList.Count
       End If
       Form18.__ENCList.Add(New WeakReference(RuntimeHelpers.GetObjectValue(value)))
   End SyncLock
End Sub
الرد }}}
تم الشكر بواسطة:
#2
يا انيس انت جايب الكود من decompiler والا انا غالط ؟
على كل حال الموضوع متعلق شوية بالـ threading لازم تقرا عليه وتفهمه
وتقرا المواضيع اللي حطيتلك روابطها وبعدين تفهم الكود
والكود مافيشي ادوات الا Form18 والباقي list و integers

SyncLock Statement
https://msdn.microsoft.com/en-us/library/3a86s51t.aspx

WeakReference Class
https://msdn.microsoft.com/en-us/library....110).aspx

WeakReference.IsAlive Property
https://msdn.microsoft.com/en-us/library....110).aspx

RuntimeHelpers.GetObjectValue Method
https://msdn.microsoft.com/en-us/library/hh400378.aspx
الرد }}}
تم الشكر بواسطة: anis_derna


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم