الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الكود لا يعمل thread لملئ Tree

مغلق
بدأه ابوأنس في 7 سبتمبر 2005 · 4 رد · 535 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذا كود لملئ شجرة tree بإستخدام Treading ولكنه للأسف لا يعمل

private void Form1_KeyPress()
  {
 	 
    Thread th;
    int max =100;
    progressBar1.Maximum=max;
                for ( int i=0;i!=max;i++)
    {
   	 th= new Thread (new ThreadStart(fillInfo));
   	 th.Start();
   	 progressBar1.Value=i;
   	 progressBar1.Refresh ();
                        
                }
 	 
  }

  private void fillInfo()
  {
 	 TreeNode tn = new TreeNode("Programmer");
 	 TreeNode ctn = new TreeNode("abou anas");
 	 tn.Nodes.Add(ctn);
 	 treeView1.Nodes.Add(tn);
 	 treeView1.Refresh();
 	 Thread.Sleep(0);
  }

المثال مرفق

TreeTreading.rar

#2

هنزود سطرين على الكود و نعدل سطر أمل السطرين اللى هنزودهم هم

 delegate int d (TreeNode node);

و السطر ده هيكون على مستوى الفورم كله يعنى مش هتعرفة داخل اى method و السطر الثانى و التعديل هيكونو ا فى الخطوة التاليه

private void fillInfo()
  {
 	 TreeNode tn = new TreeNode("Programmer");
 	 TreeNode ctn = new TreeNode("abou anas");
 	 tn.Nodes.Add(ctn);
 	 //السطر الثانى 
 	 d x=new d(treeView1.Nodes.Add);
 	 //تعديل هذا السطر
 	 treeView1.Invoke(x,new TreeNode[]{tn});
 	 treeView1.Refresh();
 	 Thread.Sleep(0);
  }

و انا هرفق الكود الذى يعمل كاملا

لكن اعتقد ان فيه بعض السطور من الكود انت وضعتها و ليس لها فائدة مثل

treeView1.Refresh();

و أيضا ليه تضع إنشاء ثريد جديد داخل اللووب انت كدا هتعمل 100 ثريد عشان تملأ الترى ممكن تعمل ثريد و ااحد بس دا form1_keypress

و تضع اللووب بتاعك داخل الداله المسئوله عن ملء الترى

TreeTreading.rar

أحمد صلاح

#4

لكن أين ال Thread؟؟؟؟

وشكراً

#5

ماهوا إنشاء الثري مش واضح هنافى الكود دا لكنه واضح فى الكود الكامل فى المرفقات

هنا فيه الجزء اللى متصحح من الكود بس

أحمد صلاح

هذا الموضوع مغلق.

مواضيع مشابهة