السلام عليكم ورحمة الله
اخواني الاعضاء
تحية طيبة وبعد
لدي برنامج مبرمج بلغة vb.net 2010
وتفاجأت بعد انهاءه وبعد تشغيل البرنامج وإغلاقه لا يعمل مرةً أخرى وذلك بسبب تعليق البرنامج في الـ Process
جرب استخدم Application Exit في حدث FormClosing ولم تفلح الطريقة
غير منطقي اذهب للمعالج وأغلق البرنامج من هناك ثم اعود بفتحه مرة اخرى
اتمنى اجد حل لديكم والله يجزاكم خير
لم استخدمه وكيف يمكن ذلك ?
ممكن توضح اكثر الله يجزاك خير
الThread احد اسباب هذه المشكلة
اذا ماستعملته اذن نستبعده
--
تأكد ان تقوم بإغلاق الform الرئيسي
او بدل ماتعور راسك استعمل (Environment.Exit(0 في حدث closing او في اي مكان تريده ان يغلق البرنامج
ممتاز
الآن لدي 20 فورم
ومن ضمنها الفورم الرئيسي والذي يتفرع منه بقية الفورمز
أين اضع هذا الكود ؟
اقصد في اي فورم بالضبط ؟
شكر الله سعيك
على حسب برنامجك
فكيف اقول لك ضعه في الفورم2 وانا لااعلم ماهو هذا الفورم
شوف فقط بكلمات بسيطة
إقتباس :Environment.Exit Just kill the Process
يعني متى مااردت اغلاق البرنامج قم باستخدامه فهو سيقتل البروسس فورا
وضعت الكود في Form Login وانتهت المشكلة الان
هل هذا حل جذري ؟؟
يا اخي جبال من الشكر لك
تقبل تقديري و احترامي لشخصك الكريم
ان الطريقة المثلى لإغلاق تطبيقات Windows forms هي استخدام Application.Exit
--
مقارنة بسيطة
Application.Exit VS Environment.Exit VS Form.Close
Application.exit : تقوم بإنهاء Windows message loop (اي الرسائل التي تتحكم في الفورم) وتقوم بإغلاق جميع الforms ، وايضا تعطي فرصة لبعض الاحداث بالانفجار .. كأحداث الاغلاق امثال Form.OnClose
Environment.Exit : قتل الـProcess فورا ، يعني كأنك تغلق البرنامج من ال Task Manger > Process List > [Your app] > End process ... يؤدي ذلك الى عدم ظهور رسائل الحفظ ماقبل الاغلاق ، وايضا في حالة استخدام الDatabase او الsocket او الfile stream فأن كل هذا لن يتم قطع الاتصال معهم . لذلك كن حذرا عندما تستخدم هذا الكود ، فعليك التأكد انك قمت بإغلاق كل ماسبق . وايضا تذكر ان هذا الكود لن ينفع إن كنت تستعمل (رسائل الحفظ ماقبل الاغلاق) مثل هذه :
Form.Close : اغلاق الفورم ببساطة ، ذلك يعني انه لايقوم بإغلاق البرنامج بل الفورم فقط ... ولكن يقولون ان اغلاق الفورم الرئيسي يؤدي الى اغلاق البرنامج بالكامل .
--
فالذي اعلمه ان الApplication.exit لاتقوم باغلاق البرنامج بشكل صحيح في حالة واحدة وهي عند استخدام الThread او Loop لم ينتهي .
لذلك اذا كان من الصعب عليك تشخيص الخطأ ، فاستخدم Environment.Exit فلن يضر ذلك ، لكن كما قلت يجب ان تتأكد من قطع اتصالاتك مع الموارد.
طبعا دائما وابدا قم بقطع اتصالاتك بالموارد فور انتهاء عملك معها ، فعند فتح ملف والانتهاء من الكتابة عليه قم باغلاقه (file.close) ونفس الشيئ بالنسبة لقواعد البيانات وغيرها من الامور الشبيهة .
(12-02-14, 03:19 AM)الشاكي لله كتب : [ -> ]ولكن يقولون ان اغلاق الفورم الرئيسي يؤدي الى اغلاق البرنامج بالكامل .
نعم هذا الكلام صحيح في حال إستخدامك
Shutdown mode الاختيار
When startup form closes كما بالشكل التالي :