VB.NET BindingSource не может быть собственной ошибкой источника данных в datagridview

Я пытаюсь выполнить поиск внутри datagridview, перебирая каждую ячейку и сравнивая 2 строки - SearchString и CellString.

Я делю работу на четыре потока (давая каждому потоку разные четверти строк для работы), которые работают параллельно. Потоки НЕ МОГУТ читать одну и ту же ячейку одновременно, потому что они перебирают разные строки, поэтому я не думаю, что это ошибка.

Каждый поток выполняет следующие действия:

   dim CellString as string
   For i As Integer = startrow To endrow

        For Each cell As DataGridViewCell In DataGridView.Rows(i).Cells

            CellString = cell.Value.ToString.ToLower ''Error appears here

            If cell.ColumnIndex <> 4 Then
                Select Case Compare(CellString, SearchString) ''complex function that compares 2 strings

                   ''....
                End Select
            End If
        Next
  Next

Я получаю следующую ошибку:

BindingSource не может быть собственным источником данных. Не устанавливайте для свойств DataSource и DataMember значения, которые ссылаются на BindingSource.

Я не понимаю, почему это происходит, потому что я не связываюсь ни с BindingSource, ни с DataSource. Также я не делаю никаких обновлений, я только читаю каждую ячейку как строку.

Я не смог найти подобной проблемы, поэтому приветствую любую помощь!


person user1735880    schedule 21.03.2013    source источник
comment
Разве вы не можете выполнять поиск в самом источнике данных вместо DGV?   -  person rheitzman    schedule 09.08.2013


Ответы (1)


Не видя всего вашего кода, трудно точно ответить на вопрос, но все указывает на то, что вы пытаетесь получить доступ к некоторым элементам своего пользовательского интерфейса (частью которого является Datagridview) из потоков, которые вы создаете.

Согласно Microsoft, это незаконно:

По умолчанию методы Windows Form или Control не могут быть вызваны в потоке, отличном от того, который создал форму или элемент управления

Дополнительную информацию можно найти в этой статье. Это помогло мне решить аналогичную проблему.

person myroslav    schedule 09.08.2013