سؤال

لدي تطبيق WinForms الذي يعتمد على العديد من المكتبات التي لدي تحكم محدود، مثل النماذج والأسماء والأشكال. WebBrowser. تسرب الذاكرة المفاجئة Sporadic تسبب التطبيق الخاص بي للتعطل. هذه ليست تسرب الذاكرة مع مرور الوقت التي تراكمت. إنها عشوائية، وغالبا ما تكون استثناءات COM مختلفة وغالبا ما تكون مستحيلة - أحيانا تحدث بعد ساعة واحدة، في بعض الأحيان بعد يوم واحد.

المنهجية الحالية الخاصة بي على الأقل التعامل مع المشكلة على الأقل هو الحصول على طلب آخر تحقق من أن أول واحد يعمل باستخدام GetProcessesByName (). ومع ذلك، هذا مشكلة لأن العملية المستمرة تعطل في بعض الأحيان ولكنها لا تغلق. أنا فقط أحصل على رسالة wer (على الرغم من حقيقة أن wer يتم إيقاف تشغيلها على الكمبيوتر). ما هو أسوأ هو أنه عندما تعطل العملية الأولى وتسرب الذاكرة، يعطل تطبيق التحقق من العملية الثانية أيضا. ثم لا شيء يعمل حتى أعد تشغيل Shabang بالكامل.

1) هل يعرف أي شخص وسيلة فعالة لعملية التحقق إذا كانت العملية B تعمل دون أن تعالج مشكلة تتعرض لمشاكل الذاكرة التي تصطدم بتحطم العملية ب؟

2) إذا لم يكن الأمر أعلاه غير ممكن، أو صعبة للغاية، فهل يعرف أي شخص بأي أدوات جيدة من طرف ثالث يمكن استخدامها لضمان تشغيل العمليات دون أي أخطاء في Wer Wer المعلقة، والتي تتم إعادة تشغيل العمليات إذا تم اكتشاف أخطاء Wer Wer، وهذا يمكن أن تصمد أمام الكبش القديم؟

شكرا!

هل كانت مفيدة؟

المحلول

بدلا من محاولة العمل حول المشكلة، يجب أن تحاول إصلاحه أولا.

إذا كنت تنقسم تسرب الذاكرة أثناء استخدام الموارد غير المدارة، فقل أن أقول بدلا من تجاهل تلك الاستثناءات التي ألقيتها بواسطة مكونات COM، والقبض، ثم التخلص منها وإعادة تهيئة إذا لم يكن من الممكن معرفة ما يسببها.

بجانب ذلك، يبدو أن عمليةك لم تعطل، بل لا تستجيب بعد الآن.انظر العملية. المقصد .أو مراقبة استخدام الذاكرة وقتله عندما يتجاوز حد معين process.workingset64

نصائح أخرى

عادة ما كنت أستخدم Pskill لقتل العملية من سطر الأوامر.لا تحتاج الكثير إلى كتابة خدمة .NET للقيام بذلك.

ومع ذلك، فإن حقيقة أن تطبيق التحقق الصغير والبسيط يفترض أنه من المقرر أن يقودني إلى الاعتقاد بأن هناك شيئا خاطئا في النظام الفعلي المعني.

href="http://www.google.co.uk/search؟hl=en&q=pslist٪20and٪20kill&meta=" rel="nofollow"> pslist &؛pskll

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top