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

عمومانا فكرتي تختلف عن الكود الخاص بك تماما فهدفي من الموضوع هو توضيح ان المبرمج لا يحتاج الي استخدام Threading بل يمكنه ان يبني Thread الخاص به
خاصة عند تعبئة البيانات الضخمة من ملف الي الكونترول مثل الليست بوكس كما في المثال

الأن و لتوضيح الأمر كثر لنفترض انك لديك مصفوفة بها 200 مليون سجل
كيف تملأ البيانات في الليست بوكس بطريقة لا تجعل البرنامج الخاص بك يهنج
هذا هو الهدف من الموضوع

أما طريقة التقسيم فأنا استخدمها مع البيانات الأكثر ضخامة بحيث يتم تقسيم المصفوفة الي مصفوفات صغيرة ذات حجم معين أحدده أنا
لأنه احيانا القراءة مباشرة قد تؤدي بك الي System out of memory exception

في المثال التالي قمت بقراءة 200 مليون رقم و بدأت أملأ بها الليست بوكس

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(200000000) {}
 
       Timer2.Interval 10
        Timer2
.Start()
 
       Threading.Thread.Sleep(100)
 
       Timer1.Interval 20
        Timer1
.Start()

 
   End Sub

    Private Sub FillListBox
()
 
       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 

حاول تغثر القيمة 200 مليون الي مثلا Integet.MaxValue -1
ثم لاحظ ماذا سيحدث معك

--------------------------------------------------------------------

الأخ السندباد
كلامك مظبوط طبعا .......
Retired
الرد }}}
تم الشكر بواسطة:


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

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Video [درس فيديو] حل مشكلة تغيير مسار قاعدة البيانات مع تقارير كريستال ريبورت رمضان272 1 2,476 25-10-24, 04:53 AM
آخر رد: رمضان272
  [مشروع] حل مشكلة الترقيم التلقائي بعد حذف سجل معين mohammed alnour 9 14,662 13-01-23, 04:16 PM
آخر رد: اسلام الكبابى
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 25 41,307 23-02-22, 06:04 PM
آخر رد: رضوان الجماعي
  قراءة رقم من ضمن سلسلة ارقام موجودة في الحقل عبدالكريم برشدان 2 1,828 06-11-21, 11:20 PM
آخر رد: عبدالكريم برشدان
  [نقاش] [لم تحل] لدي مشكلة وارجو الحل ! aabbccdd 2 2,843 05-04-21, 07:49 PM
آخر رد: aabbccdd
  دمج قاعدة بيانات SQL Server 2008 مع المشروع بالـ VBNET snipercoder 4 8,663 12-11-20, 06:01 PM
آخر رد: lion4
  [درس فيديو] كيف تحول اي قاعدة بيانات اكسس الى SQL aljzazy 3 3,765 17-04-20, 09:27 PM
آخر رد: الوايلي
  [درس فيديو] كيف تحول اي قاعدة بيانات اكسس الى mysql aljzazy 0 2,575 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,119 21-01-19, 03:43 PM
آخر رد: elgokr

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


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