سؤال

لدي الطريقة التالية لنسخ البايتات من دفق مأخذ التوصيل إلى القرص:

 public static void CopyStream(Stream input, Stream output)
 {
    // Insert null checking here for production
    byte[] buffer = new byte[8192];
    int bytesRead;
    while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
    {
        output.Write(buffer, 0, bytesRead);
    }
}

ما يثير فضولي هو:سوف buffer يتم تخصيصها على المكدس أو على الكومة؟من المؤكد أنه يمكنني جعل هذه الطريقة غير آمنة وإضافة fixed الكلمة الرئيسية للإعلان المتغير ، لكنني لا أريد أن أفعل ذلك مع IFN.

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

المحلول

ال buffer سيتم تخصيص المتغير على المكدس، وذاكرة 8192 بايت buffer المتغير يحمل موقع سيكون على الكومة.

لماذا تتحدث عنه fixed؟هل تحاول تسريع الأمور؟يكاد يكون من المؤكد أنه لن ...

على حد تعبير إريك ليبرت:

"لكن في الغالبية العظمى من البرامج الموجودة هناك ، لن تكون التخصيصات المتغيرة المحلية والمعدات المتغيرة عنق الزجاجة."

المرجع.

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