Обработка DataTable в другом потоке

Приветствую форумчане! Итак вопрос к профессионалам. Мучаюсь не первый день, не могу никак победить. У меня есть два потока. В главном, основном настраивается таблица данных, которая объявляется в модуле:

Таблица эта нужна для быстрой работы с DataGridView вообще на другой форме:

В однопоточном приложении всё работает. Но в многопоточном (из другого потока) никак не получается внести новые данные, строки в эту таблицу. Делегаты не получается никак перенаправить на таблицу, ругается, что Invoke не относится к DataTable.

Никогда ранее не работал в многопоточности с базами данных и с DataTable. Ниже привожу неработающий код:

VB.NETВыделить код

1
2
3
4
5
6
7

    Sub ДТ(дт1 As String, дт2 As String)
        If dt.InvokeRequired Then
                Invoke(New ДелегатДТ(AddressOf ДТ), дт1, дт2)
            Else
                dt.Rows.Add(дт1, дт2)
        End If
    End Sub

При внесении изменений непосредственно в DataGridView, естественно ругается, что напрямую невозможно вносить изменения в DataGridView, которая завязана на электронную таблицу.

Помогите, умные люди, как правильно управлять таблицей из другого потока.