THREAD UTILIZAR OBJETOS DO FORMULARIO

KILLER 02/08/2011 14:38:28
#380611
Pessoal é o seguinte estou começando a utilizar threads e estou com uma dúvida.

quero acessar os objetos do formulário como combobox, barra de status, mais quando utilizo esses objetos acontece o seguinte erro:

[Ô]Operação entre threads inválida: controle [ô]stsNFe[ô] acessado de um thread que não é aquele no qual foi criado.[Ô]

alguém poderia me ajudar?
KERPLUNK 02/08/2011 15:02:40
#380613
O form em si é uma thread. Se vc tentar acessar qualquer coisa da thread que vc criou no seu form, vai dar essa mensagem. Vc tem que usar um delegate nesse caso...
KILLER 02/08/2011 15:03:47
#380614
eu tentei fazer esse delegate mais não consegui entender direito como funciona, poderia me explicar.
obrigado.
KERPLUNK 02/08/2011 15:11:43
#380615
é uma das coisas mais xaropes que tem pra fazer....
Tem um artigo muito bom aqui
KILLER 02/08/2011 15:32:09
#380618
olha estou fazendo assim:
Private Delegate Sub StatusBar(ByVal Tool As System.Windows.Forms.ToolStripStatusLabel, ByVal CorStatus As System.Drawing.Color, ByVal TextoStatus As String)

Private Sub StatusWS()
Dim Dele As StatusBar
Dele = New StatusBar(AddressOf Status)
Dele.Invoke(toolWS, Color.Black, [Ô]Buscando Status ...[Ô])
End Sub

Private Sub Status(ByVal Tool As System.Windows.Forms.ToolStripStatusLabel, ByVal CorStatus As System.Drawing.Color, ByVal TextoStatus As String)
Tool.ForeColor = CorStatus
Tool.Text = TextoStatus
NFEletronica.stsNFe.Refresh()
End Sub

mais continua dando o mesmo erro
KILLER 02/08/2011 16:36:56
#380625
Obrigado mais consegui fazer de outra maneira:

Control.CheckForIllegalCrossThreadCalls = False
trdLoad = New Thread(AddressOf ThreadLoad)
trdLoad.Start()
Tópico encerrado , respostas não são mais permitidas