যখনই কোনও ক্ষেত্রের মান পরিবর্তন হতে চলেছে আপনি কোনও ইভেন্ট সেটার জন্য কোনও সম্পত্তি সেটার ব্যবহার করতে পারেন।
আপনার নিজের ইভেন্ট হ্যান্ডলার প্রতিনিধি থাকতে পারে বা আপনি বিখ্যাত সিস্টেম.এভেন্টহ্যান্ডলার প্রতিনিধি ব্যবহার করতে পারেন।
সাধারণত এটির জন্য একটি নিদর্শন রয়েছে:
- ইভেন্ট হ্যান্ডলার প্রতিনিধি সহ একটি সর্বজনীন ইভেন্টের সংজ্ঞা দিন (এতে ইভেন্টআর্গস টাইপের যুক্তি রয়েছে)।
- অনএক্সএক্সএক্সএক্সএক্সএক্স নামে একটি সুরক্ষিত ভার্চুয়াল পদ্ধতি সংজ্ঞায়িত করুন (উদাহরণস্বরূপ OnMyPropertyValueChanged)। এই পদ্ধতিতে আপনার যাচাই করা উচিত ইভেন্ট হ্যান্ডলার প্রতিনিধি নাল কিনা এবং না হলে আপনি এটি কল করতে পারবেন না (এর অর্থ ইভেন্টের প্রতিনিধি দলের সাথে সংযুক্ত এক বা একাধিক পদ্ধতি রয়েছে)।
- যখনই আপনি গ্রাহকদের কিছু পরিবর্তন হয়েছে তা অবহিত করতে এই সুরক্ষিত পদ্ধতিটি কল করুন।
এখানে একটি উদাহরণ
private int _age;
public event System.EventHandler AgeChanged;
protected virtual void OnAgeChanged()
{
if (AgeChanged != null) AgeChanged(this,EventArgs.Empty);
}
public int Age
{
get
{
return _age;
}
set
{
_age=value;
OnAgeChanged();
}
}
এই পদ্ধতির সুবিধাটি হ'ল আপনি যদি প্রয়োজন হয় তবে আপনার ক্লাস থেকে উত্তরাধিকারী হতে চাইলে যে কোনও ক্লাসকে অনুমতি দিন।
যদি আপনি কোনও ইভেন্টটিকে উত্থিত করা হয় এমন কোনও ভিন্ন থ্রেডে ধরতে চান তবে আপনাকে অবশ্যই সতর্ক থাকতে হবে যে অন্য থ্রেডে সংজ্ঞায়িত বস্তুর অবস্থা পরিবর্তন না করা উচিত যা ক্রস থ্রেড ব্যতিক্রম ছুঁড়ে দেওয়ার কারণ হতে পারে। এটি এড়ানোর জন্য আপনি যে কোনও ইভেন্টটি উত্থাপিত হয়েছে একই থ্রেডে ঘটছে বা আপনি যদি উইন্ডোজ ফর্মের সাথে লেনদেন করছেন সে ক্ষেত্রে পরিবর্তনটি ঘটছে কিনা তা নিশ্চিত করার জন্য আপনি যে পদটিতে তার অবস্থার পরিবর্তন করতে চান তার উপর একটি ইনভোক পদ্ধতি ব্যবহার করতে পারেন you সমান্তরাল থ্রেডে সুন্দর এবং সহজে কাজগুলিতে ব্যাকগ্র্যান্ড ওয়ার্কার ব্যবহার করতে পারেন।