সাক্ষাত্কারকারী আজ আমাকে এই সম্পর্কে জিজ্ঞাসা করলেন ... কোন উত্তর আছে?
সাক্ষাত্কারকারী আজ আমাকে এই সম্পর্কে জিজ্ঞাসা করলেন ... কোন উত্তর আছে?
উত্তর:
System.GC.Collect()জঞ্জাল সংগ্রহকারীকে চালাতে বাধ্য করে forces এটি প্রস্তাবিত নয় তবে পরিস্থিতি দেখা দিলে এটি ব্যবহার করা যেতে পারে।
এটি স্পষ্টভাবে জিসি কল করার পরামর্শ দেওয়া হয় না, তবে যদি আপনি কল করেন
GC.Collect();
GC.WaitForPendingFinalizers();
এটি আপনার কোড জুড়ে জিসিকে স্পষ্টভাবে কল করবে, GC.WaitForPendingFinalizers();পরে কল করতে ভুলবেন না GC.Collect()।
WaitForPendingFinalizersঅগত্যা "আরও ভাল পারফরম্যান্স" দেয় না: চূড়ান্তকরণের সারিতে সমস্ত বস্তু চূড়ান্ত না হওয়া পর্যন্ত এটি কেবল অবরুদ্ধ হয় (যে জিনিসগুলিতে আপনার পূর্ববর্তী কল দ্বারা সেখানে রাখা হয়েছিল Collect)। আপনি যদি চান তাদের জন্য একটি সুযোগ তারপর সংগ্রহ করা আপনার যা দরকার বস্তু অন্য থেকে কল Collect পর কলিং WaitForPendingFinalizers।
WaitForPendingFinalizers?
GC.Collect()
এমডিএসএন থেকে ,
অ্যাক্সেসযোগ্য সমস্ত স্মৃতি পুনরায় দাবি করার চেষ্টা করার জন্য এই পদ্ধতিটি ব্যবহার করুন।
সমস্ত বস্তু, তারা স্মৃতিতে দীর্ঘকাল নির্বিশেষে সংগ্রহের জন্য বিবেচিত হয়; তবে পরিচালিত কোডে রেফারেন্সযুক্ত অবজেক্টগুলি সংগ্রহ করা হয় না। সিস্টেমে উপলব্ধ মেমরির সর্বাধিক পরিমাণ দাবি করতে চেষ্টা করতে এই পদ্ধতিটি ব্যবহার করুন।
তবে মনে রাখবেন যে আবর্জনা সংগ্রাহক আপনার প্রত্যাশাটি সবসময় পরিষ্কার না করে ...
আপনি জঞ্জাল সংগ্রহকারীকে চালাতে বাধ্য করতে চান না।
তবে, যদি আপনি কখনও করেন (অবশ্যই একটি খাঁটি একাডেমিক অনুশীলন হিসাবে):
GC.Collect()
আমার মনে হয়। নেট ফ্রেমওয়ার্কটি এটি স্বয়ংক্রিয়ভাবে করে তবে কেবল ক্ষেত্রে। প্রথমে আপনি কী মুছতে চান তা নির্বাচন করুন এবং তারপরে আবর্জনা সংগ্রহকারীকে কল করুন:
randomClass object1 = new randomClass
...
...
// Give a null value to the code you want to delete
object1 = null;
// Then call the garbage collector to erase what you gave the null value
GC.Collect();
আমি মনে করি এটিই .. আশা করি আমি কাউকে সাহায্য করব।