"BindingSource no puede ser su propia fuente de datos": error al intentar restablecer la fuente de enlace desde un método de otra clase

Estamos vinculando aDataGridview utilizandoBindingSource. Así que en el hilo principal hemos dado así.

            class1BindingSource = new BindingSource();
            class1BindingSource.DataSource = class1List;  
            this.dataGridView1.DataSource = class1BindingSource;

Después de eso, he colocado un trabajador de fondo en el formulario y se está activando con un clic del botón.

es decir, en el botón haga clic

this.backgroundWorker1.RunWorkerAsync()

En elBackgroundWorker DoWork Event estoy tratando de actualizar elBindingSource y allí intentando actualizar elDataGridview.

Entonces elBindingSource El reinicio se realiza en un método en otra clase.

DoWork Event

Class2 cl2 = new Class2();
cl2.UpdateBindingSource(class1BindingSource);

UpdateBindingSource Method

public void UpdateBindingSource(BindingSource bs)
        {
            Class1 c1 = bs.Current as Class1;    
            for (int i = 0; i < 1000; i++)
            {
                lock (bs.SyncRoot)
                {
                    c1.MyProperty1 = i;
                    bs.ResetItem(0);
                }
            }
        }

Ahora estoy recibiendo una excepción comoBindingSource No puede ser su propia fuente de datos. No establezca elDataSource yDataMember propiedades a los valores que se refieren de nuevo aBindingSource.

Si estoy haciendo esto en miDoWork Event entonces puedo restablecer el elemento en el propio hilo de control usandoBeginInvoke method.

Pero en realidad estoy tratando de simular nuestro escenario de aplicación. Así que quiero resolver esto en este formato.

Puede alguien ayudarme con esto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta