none
Работа с потоками RRS feed

  • Вопрос

  • Private OneWay As Threading.Thread

    Private Sub General_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    OneWay = New Threading.Thread(AddressOf StartLoad)
    OneWay.Start()
    End Sub
    Private Sub StartLoad()

    'Код...

     End Sub

     

    При загрузке выполняется процедура StartLoad в которой проводится множество операций и циклов. Но проблема, пишет, что все операции получаются с другого потока. Пробовал через  Invoke(New Action(Sub() Действие )), но тогда приписывать это необходимо почти в каждую строку. Как правильно вызвать поток?

    21 февраля 2011 г. 21:26

Ответы

  • По всей видимости, Вы имеете в виду, что в методе StartLoad у Вас выполняются операции, связанные с обновлением пользовательского интерфейса. Эти операции нужно выполнять в потоке пользовательского интерфейса (в основном потоке) при помощи Invoke или BeginInvoke формы (Windows Forms ведь, да?). Вы можете вынести эти операции обновления интерфейса в отдельный метод или несколько методов и вызывать его/их при помощи этих Invoke/BeginInvoke, а операции вычисления по-прежнему будут выполняться в отдельном потоке.
    • Помечено в качестве ответа Abolmasov Dmitry 22 февраля 2011 г. 13:13
    22 февраля 2011 г. 6:07

Все ответы