Cześć.

Ćwicząc dalej użycie Bindingu w WinForms (wytłuszczam, żeby rzucało się w oczy, że nie chodzi o WPF ;) ) chciałem wrzucić sobie na formę zegarek.
Posiłkując się moim poprzednim tematem w którym podpowiedzieliście mi jak zrobić powiązanie klasa -> kontrolka ( CheckBox - wiązanie dwukierunkowe. ) zrobiłem sobie prosta klasę:

 class Date : INotifyPropertyChanged
    {
        BackgroundWorker backgroundWorker = new BackgroundWorker();

        public event PropertyChangedEventHandler PropertyChanged;

        private DateTime _currentDate;
        public DateTime currentDate
        {
            get { return _currentDate; }
            set
            {
                _currentDate = value;
                OnPropertyChanged();
            }
        }

        public Date()
        {
            currentDate = DateTime.Now;
            backgroundWorker.DoWork += BackgroundWorker_DoWork;
            backgroundWorker.RunWorkerAsync();
        }

        private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            while (true)
                currentDate = DateTime.Now;
        }

        protected void OnPropertyChanged(string name = null)
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        }
    }

a na formie głównej dodałem wiązanie:

 Date date = new Date();
        public Form1()
        {
            InitializeComponent();
            label1.DataBindings.Add(new Binding("text", date, "currentDate", false, DataSourceUpdateMode.OnPropertyChanged));
        }

Niestety, występuję błąd związany z dostępem do labela z innego wątku:

System.InvalidOperationException: „Nieprawidłowa operacja między wątkami: do formantu 'label1' uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony.”

Pytanie jak sobie z tym poradzić (wiem, że przy bezpośrednim dostępie z innego wątku do kontrolki trzeba użyć InvokeRequired i Invoke, ale w tym przypadku nie mam pomysłu jak...).

Z góry dziękuję za pomoc.