يلبي بالغرض بحيث لا ينتقل إلى الأمر الأرسال التالي حتى ينتهي من الأول ويستقبل أنه تم الأستلام لانك تتعامل مع بروتوكول TCP/IP
طيب في طريقه تخليه يعرض البيانات دون الضغط على زر عرض ؟
لاني حاولت أعرضها بنقل الكود إللي موجود بكود العرض بعد نهاية الاستلام الأخير
ولاكن يحدث خطأ في كود العرض هذا نص الخطأ
Cross-thread operation not valid: Control 'TextBox1' accessed from a thread other than the thread it was created on.
سؤال أخير ونخلص من القصه كلها
هل المشكله هذي تحدث فقط مع التعامل بإدخال القيم في الأدوات ولا تحصل في جميع التغييرات على البرنامج
يعني لو أملك مثلا قاعدة بيانات
وأبيه إذا استلم الملف يقوم بإضافته إلى قاعدة البيانات تلقائي عن طريق كود الإضافه الشهير باستخدام ADO.Net
هل سيقبل عادي ولا لازم اسوي له مثل هذي الحركه
اخي الكريم هذه ليست مشكلة بالمعنى الدقيق وانما المقصود من الاستثناء أن البرنامج الرئيسي يعمل على Thread (مسلك) مستقل عن الThread الخاص باستقبال الرسالة لذا لا يجوز التداخل بين عمل الاثنين يعني كل Thread يجب أن يعمل بمعزل عن الاخر.
وهذا الشرح من المقال الاول الذي كتبته وتوجد في الصفحة الثالثة من قسم مقالات ال#C
إقتباس :اهم ملاحظة في طرف المستقبل هي استخدام دالة الInvoke الخاص باداة الTextbox لانشاء Delegate جديدة عن طريق الMethodInvoker ,حيث عند عدم انشاء delegate سيظهر Exception اثناء استقبال الرسالة لان الاداة التي نريد عرض الرسالة داخلها تعمل على مسلك آخر غير المسلك التي نعمل عليها لذا يجب فصله عن طريق دالة الInvoke وذلك بعمل delegate نضع داخلها الTextbox وذلك لعرض البيانات داخلها للحؤول دون ظهور استثناء يعرقل عمل البرنامج.