কম্পিউটার

C# এ অ্যারে ক্লাসের Array.SyncRoot প্রপার্টি কি করে?


Array.SyncRoot বৈশিষ্ট্যটি এমন একটি বস্তু পেতে ব্যবহৃত হয় যা অ্যারেতে অ্যাক্সেস সিঙ্ক্রোনাইজ করতে ব্যবহার করা যেতে পারে। যে ক্লাসে অ্যারে আছে তারাও তাদের নিজস্ব সিঙ্ক্রোনাইজেশন বাস্তবায়ন করতে SyncRoot প্রপার্টি ব্যবহার করতে পারে।

একটি সংগ্রহের মাধ্যমে গণনা করা একটি থ্রেড নিরাপদ পদ্ধতি নয়। অন্যান্য থ্রেডগুলি সংগ্রহটি সংশোধন করতে পারে এমনকি যখন সংগ্রহটি সিঙ্ক্রোনাইজ করা হয়। এটি শেষ পর্যন্ত গণনাকারীকে একটি ব্যতিক্রম নিক্ষেপ করার কারণ হবে। এর জন্য, আপনাকে সংগ্রহটি লক করতে হবে।

আসুন আমরা Array.SyncRoot প্রপার্টি −

এর সাথে কাজ করার একটি উদাহরণ দেখি

উদাহরণ

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
   static void Main() {
      Array arr = new int[] { 23, 11, 32, 18, 87 };
      lock(arr.SyncRoot) {
         foreach (Object val in arr)
         Console.WriteLine(val);
      }
   }
}

আউটপুট

23
11
32
18
87

উপরে, আমরা অ্যারে -

-এ একটি লক সেট করেছি
lock(arr.SyncRoot)

  1. অ্যারে ক্লাসের Array.IsFixedSize সম্পত্তি C# এ কী করে?

  2. C# এ অ্যারে ক্লাসের Array.Rank সম্পত্তি কী করে?

  3. C# এ BitArray ক্লাসের কাউন্ট সম্পত্তি কি?

  4. C# এ SortedList ক্লাসের ক্যাপাসিটি প্রপার্টি কি?