منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
شرح الكووووووووود - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم مكتبة اكواد VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=185)
+--- الموضوع : شرح الكووووووووود (/showthread.php?tid=18503)



شرح الكووووووووود - anis_derna - 20-12-16

لو تكرمت ان تشرح لي هذا الكود و الادوات المستخدمة 

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


RE: شرح الكووووووووود - محمد كريّم - 20-12-16

يا انيس انت جايب الكود من 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/system.weakreference(v=vs.110).aspx

WeakReference.IsAlive Property
https://msdn.microsoft.com/en-us/library/system.weakreference.isalive(v=vs.110).aspx

RuntimeHelpers.GetObjectValue Method
https://msdn.microsoft.com/en-us/library/hh400378.aspx