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

سؤال في ال Threading

مغلق
بدأه ashrafyashar في 22 أغسطس 2007 · 2 رد · 597 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

من فضلكم اريد المساعدة هذا الكود لا يعمل

رسالة الخطأ

Cross-thread operation not valid: Control

'listBox1' accessed from a thread other than the thread it was created on.

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Threading;



namespace _

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}



public void calc()

{

for (int x = 0; x < 100000 ; x++ )

{



listBox1.Items.Add(x);



}

}



ThreadStart d = null;

Thread t = null;

private void button1_Click(object sender, EventArgs e)

{

d = new ThreadStart(calc);

t = new Thread(d);

t.Start();

}



}

}

ياريت الحل من فضلكم

#2

عزيزي قمت بتجربه الكود واشتغل معاي !!

جرب شغله بـCtrl+F5 ..

#3

بإمكانك إستخدام الكود التالي:

private delegate void AddListBoxItemDelegate(object item);
private void AddListBoxItem(object item)
{
	if (this.listBox1.InvokeRequired)	
{
		this.listBox1.Invoke(new AddListBoxItemDelegate(this.AddListBoxItem), item);	
}
	else	
{
		   this.listBox1.Items.Add(item);	
}
}

و بإستدعاء AddListBoxItem يمكنك إضافة العنصر الى القائمة بدون أخطاء

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

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

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