تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حل مشكلة التهنيج عند قراءة بيانات ضخمة من مصفوفة
#1
واحدة من المشاكل التي تقابل المبرمج هي قراءة بيانات من مصفوفة ذات حجم كبير
هذه المشكلة غالبا يعاني منها مبرمجي الداتا بيز خاصة عندم يتضخم الملف و يمتلأ بالبيانات و يتحول الأمر الي معاناة ويؤدي ذلك الي بطء في اظهار البيانات علي الشاشة
غالبا الحلول تكمن في استخدام thread مثل Backgroundworker او شئ مماثل

اغلب Thread تعتمد علي تايمر و الفكرة التالية توضح كيف تملأ ListtBox بإستخدام تايمر بدلا من استخدام thread
دون أن يؤثر ذلك علي كفاءة البرنامج أو يؤدي الي تهنيج

لتنفيذ الفكرة


افتح مشروع ........
اضف للفورم ليست بوكس
أضف تايمر

واكتب الكود بالشكل التالي


PHP كود :
Public Class Form1

    Private x 
As Integer 0
    Private values 
As String() = Nothing

    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        values 
= New String() {"1""2""3""4""5""6""7""8""9""10""11""12""13""14""15""16""17""18""19""20"}
 
       Timer1.Start()
 
   End Sub

    Private Sub FillListBox
()
 
       Me.Timer1.Interval 1000
        Dim s 
As String values(Me.x Mod values.Length)
 
       x += 1
        ListBox1
.Items.Add(s)
 
       If x values.Length Then
            Timer1
.Stop()
 
       End If
 
   End Sub

    Private Sub Timer1_Tick
(sender As ObjectAs EventArgsHandles Timer1.Tick
        FillListBox
()
 
   End Sub

End 
Class 

المثال التالي يوضح كيف تقرأ البيانات و تملأ البيانات في نفس الوقت
الفكرة مثل Synchronize
لتنفيذ الفكرة
افتح مشروع
اضف عدد 2 تايمر
اضف ليست بوكس للفورم
واكتب الكود بالشكل التالي
أهم شئ في الموضوع أن التايمر الذي يقرأ يجب أن يكون أسرع من التايمر الذي يملأ الليست بوكس


PHP كود :
Public Class Form1

    Private x 
As Integer 0
    Private y 
As Integer 0
    Private values 
As Integer() = Nothing

    Private Sub Form1_Load
(sender As ObjectAs EventArgsHandles MyBase.Load
        values 
= New Integer(1000) {}

 
       Timer2.Start()
 
       Threading.Thread.Sleep(100)
 
       Timer1.Start()

 
   End Sub

    Private Sub FillListBox
()
 
       Me.Timer1.Interval 1000
        Dim s 
As Integer values(Me.x Mod values.Length)
 
       x += 1
        ListBox1
.Items.Add(s.ToString)
 
       If x values.Length Then
            Timer1
.Stop()
 
       End If
 
   End Sub

    Private Sub Timer1_Tick
(sender As ObjectAs EventArgsHandles Timer1.Tick
        FillListBox
()
 
   End Sub

    Private Sub ReadData
()
 
       values(y) = y
        y 
+= 1
        If y 
values.Length Then
            Timer2
.Stop()
 
       End If
 
   End Sub

    Private Sub Timer2_Tick
(sender As ObjectAs EventArgsHandles Timer2.Tick
        ReadData
()
 
   End Sub
End 
Class 



الفكرة يمكن تطويرها لقراءة بيانات من ملف ضخم
تقبلوا تحياتي
Retired
الرد }}}
تم الشكر بواسطة: Sajad , ابو ليلى


الردود في هذا الموضوع
حل مشكلة التهنيج عند قراءة بيانات ضخمة من مصفوفة - بواسطة silverlight - 26-10-17, 09:14 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Video [درس فيديو] حل مشكلة تغيير مسار قاعدة البيانات مع تقارير كريستال ريبورت رمضان272 1 2,476 25-10-24, 04:53 AM
آخر رد: رمضان272
  [مشروع] حل مشكلة الترقيم التلقائي بعد حذف سجل معين mohammed alnour 9 14,664 13-01-23, 04:16 PM
آخر رد: اسلام الكبابى
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 25 41,329 23-02-22, 06:04 PM
آخر رد: رضوان الجماعي
  قراءة رقم من ضمن سلسلة ارقام موجودة في الحقل عبدالكريم برشدان 2 1,831 06-11-21, 11:20 PM
آخر رد: عبدالكريم برشدان
  [نقاش] [لم تحل] لدي مشكلة وارجو الحل ! aabbccdd 2 2,844 05-04-21, 07:49 PM
آخر رد: aabbccdd
  دمج قاعدة بيانات SQL Server 2008 مع المشروع بالـ VBNET snipercoder 4 8,666 12-11-20, 06:01 PM
آخر رد: lion4
  [درس فيديو] كيف تحول اي قاعدة بيانات اكسس الى SQL aljzazy 3 3,767 17-04-20, 09:27 PM
آخر رد: الوايلي
  [درس فيديو] كيف تحول اي قاعدة بيانات اكسس الى mysql aljzazy 0 2,576 10-04-20, 09:05 PM
آخر رد: aljzazy
  [VB.NET] كيفية استخدام اداوات ديف اكسبريس devexpressلادخال السجلات الى قاعدة بيانات نوع اكسس 13adam123 0 2,901 29-03-20, 12:50 PM
آخر رد: 13adam123
  كيفية عمل برنامج للأذان + قاعدة بيانات لـ 252 دولة و 9512 مدينة ! : مبرمج أوتار 4 24,120 21-01-19, 03:43 PM
آخر رد: elgokr

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


يقوم بقرائة الموضوع: