سؤال

مع StackOverflowException، هل الشروط التي سيتم طرحها مشفرة أم تعتمد على الجهاز الذي يعمل عليه الكود؟

أنا متأكد تقريبًا من الخيار الأخير ولكني فشلت في عمليات البحث التي أجريتها ولا أطرح أسئلة كافية هنا.

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

المحلول

وثائق :

<اقتباس فقرة>   

... يتم طرح عندما يفيض مكدس التنفيذ لأنه يحتوي على عدد كبير جدا من استدعاءات الأسلوب المتداخلة.

وبما أن حجم المكدس التي تعتمد على الهندسة المعمارية ويمكن حتى يتم تجاوز على الجهاز، نعم، وليس من الصعب ترميز هذه القيمة، على الرغم من أنه عادة ثابتة جدا على ويندوز. إذا كنت أتذكر بشكل صحيح، هو 1MB في حجم افتراضيا.

نصائح أخرى

وعلى الرغم من عدم وجود تطابق كامل لسؤالك، وانظر أيضا:

كيف يمكن تغيير حجم كومة الافتراضي للتمكن executable.net

سوف تختلف

وإطارات المكدس اعتمادا على طريقة معالجة نظام التشغيل الخاص بك. أعتقد يستخدم إلى x64 إطارات كومة أكبر قليلا. نضع في اعتبارنا أن المساحة عملية قادر على تزايد أكثر بكثير من التركيز على x86 و ذلك عموما يجب أن تكون قادرة على تكوين الكدسة لقبول المزيد من الإطارات على x64 و إذا RAM وحجم ملف المبادلة ليست قضية.

الاستثناء الذي يتم طرحه عند تجاوز سعة مكدس التنفيذ لأنه يحتوي على عدد كبير جدًا من استدعاءات الأساليب المتداخلة.لا يمكن توريث هذه الفئة.MSDN

لقد حاولت هذا شفرة مع بعض التغييرات.أغير البيان أعلاه وفقا لتجربتي

الإطار 4.0 الاستثناء الذي يتم طرحه عند تجاوز سعة مكدس التنفيذ لأنه يحتوي على 7573 استدعاء أسلوب متداخل.لا يمكن توريث هذه الفئة.

الإطار 2.0 الاستثناء الذي يتم طرحه عند تجاوز سعة مكدس التنفيذ لأنه يحتوي على 7038 استدعاءات أسلوب متداخلة.لا يمكن توريث هذه الفئة.

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