خطأ Cross-thread operation not valid: كيفية الوصول إلى عناصر التحكم من مؤشر ترابط آخر في C# WinForms
مرحباً بالجميع! أنا مبتدئ في C# و WinForms، وقد توقفت عند مشكلة تتعلق بتعدد المهام. أقوم بتطوير تطبيق يقوم بتحميل البيانات من الإنترنت وعرضها في ListBox. لكي لا يتجمد الواجهة، أقوم بتشغيل التحميل في مؤشر ترابط منفصل باستخدام Task.Run. إليك الكود المبسط:\n\n```csharp\nprivate void buttonStart_Click(object sender, EventArgs e)\n{\n Task.Run(() => LoadData());\n}\n\nprivate void LoadData()\n{\n for (int i = 0; i < 10; i++)\n {\n // محاكاة تحميل البيانات\n Thread.Sleep(1000);\n // أحاول إضافة عنصر إلى ListBox\n listBoxResult.Items.Add("العنصر " + i);\n }\n}\n```\n\nعند التشغيل، في السطر `listBoxResult.Items.Add(...)` يظهر استثناء: "Cross-thread operation not valid: Control 'listBoxResult' accessed from a thread other than the thread it was created on."