Не удается передать полную строку делегату

#vb.net

Вопрос:

У меня есть backgroundworker для работы с объектами и запросами, но он вызывает делегата для записи в datagridview, но когда я добавляю 1 символ в строку для делегата, он больше не записывает в сетку и вводит me.invokerequired, если я удалю этот символ, он перейдет к другому. Отсюда я звоню делегату

 If jsonElemento.cantidad_errores lt;gt; 0 Then  If jsonErrores.Count = 0 Then  vector = fila("docentry").ToString   ";"   fila("tipo")   ";"   " "   "i add the char here (;)"   jsonElemento.cantidad_errores.ToString  gridError(vector)  Else  vector = fila("docentry").ToString   ";"   fila("tipo")   ";"   jsonErrores(0).mensaje_error.ToString   ";"   jsonElemento.cantidad_errores.ToString  gridError(vector)  End If End If  

А это мой делегат

 Public Sub gridError(argumentos As String)  If Me.InvokeRequired() Then  Me.Invoke(New Action(Of String)(AddressOf gridError), argumentos)  Else  vector = argumentos.Split(delimitadores, StringSplitOptions.None)  If vector.Count = 3 Then  DataErrores.Rows.Add(vector(0), vector(1), vector(2))  ElseIf vector.Count = 2 Then  DataErrores.Rows.Add(vector(0), " ", vector(1))  End If  End If End Sub  

Я не могу понять, почему 1 символ имеет такое значение, и у меня та же проблема с вектором if.count = 3

Комментарии:

1. Это не очень хорошая теория. Убедитесь, что событие загрузки сработало перед запуском рабочего, чтобы вы могли быть уверены, что форма инициализировалась сама. И не используйте InvokeRequired, когда вы знаете , что это должно быть правдой, кроме как для создания исключения, указывающего на то, что с формой что-то не так.

2. Я всегда устанавливал WorkerReportsProgress = true и использовал ReportProgress метод в bgw для обновления элементов пользовательского интерфейса; он запускает ProgressChanged событие в потоке пользовательского интерфейса, создавшем работника (который должен быть тем же потоком, который создал вашу сетку), поэтому вызов не требуется. Вы можете передать состояние объекта в ReportProgress