Как построить класс так чтобы при изменении одного из свойств, класса создавался новый поток? - C#

Узнай цену своей работы

Формулировка задачи:

Добрый всем день. Помогите разобраться с задачей. Задача: Создайте класс Bank в котором будут следующие свойства:
int money, string name, int percent.
Постройте класс так чтобы при изменении одного из свойств, класса создавался новый поток, который записывал данные о свойствах класса в текстовый файл. Класс должен инкапсулировать в себе логику многопоточности. Вопрос: Как Построить класс так чтобы при изменении одного из свойств, класса создавался новый поток.? Заранее спасибо.

Решение задачи: «Как построить класс так чтобы при изменении одного из свойств, класса создавался новый поток?»

textual
Листинг программы
public class Bank: INotifyPropertyChanged
    {
        private readonly object _locker = new object();
 
        private decimal _money;
        private string _name;
        private float _percent;
 
        public decimal Money
        {
            get { return _money; }
            set
            {
                _money = value;
                OnPropertyChanged();
            }
        }
 
        public string Name
        {
            get { return _name; }
            set
            {
                _name = value;
                OnPropertyChanged();
            }
        }
 
        public float Percent
        {
            get { return _percent; }
            set
            {
                _percent = value;
                OnPropertyChanged();
            }
        }
 
        private void Callback(object sender, PropertyChangedEventArgs e)
        {
            
            ThreadPool.QueueUserWorkItem((x) =>
            {
                lock (_locker)
                {
                   // здесь ваша логика работы с файлом    
                }
 
            },null);
        }
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        [NotifyPropertyChangedInvocator]
        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы