ERRO EM APLICA?ÃO PARA ENVIO DE MENSAGUEM

JOAOBENEVIDES 10/12/2015 16:14:40
#454986
Ola Pessoal estou com erro meu estranho tenho um projeto que esta em c# windows forms para envio de mensaguem via watzapp , que vou postar apos terminar ele

tenho esta linha
public void wa_OnGetMessage(ProtocolTreeNode node, string from, string id, string name, string message, bool receipt_sent)
{

// AddNewText(from + name, message);
Console.WriteLine([Ô]Message from {0} {1}: {2}[Ô], name, from, message);
}

ele grava no console normal
porem quero qu mando ele gravar num texbox ele da o seguinte erro

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

onde posso estar errado

um amigo me passou o codigo que esta em console estou passando ele para windows forms e depois postei o codigo para nossos querido amigos do forum
XLEGENDARY 10/12/2015 16:35:06
#454989
Esse projeto já existe em windows form
la no github vc consegue achar se nao me engano o nome do projeto é
WhatsApp4Windows
porém não sei o metodo de acesso do seu em console, no windows form é Api mesmo ...

sobre seu erro use AsyncOperation que sincroniza duas threads diferentes ai dará pra usar o ReadAsync
pode ser o caso de uso de thread não segura, ai ele gera essa exceção.
Tem ainda o Task, o ThreadPool ( mais indicado ) BackgroundWorker, e alguns outros.Que no fim das contas será o certo de vc fazer , aqui mesmo no vbmania tem varios exemplos de uso de thread das formas que citei
Abraço
JABA 10/12/2015 16:39:02
#454990
Resposta escolhida
Esse tipo de problema ocorre porque a thread do Form é diferente do objeto que o está chamando. Para corrigir isso, você poderia usar um BackGroundWorker ou trabalhar com Delegates para fazer essa ponte entre um objeto e outro.

A última parte desse artigo fala sobre isso: http://www.macoratti.net/10/09/c_thd1.htm
LUIS.HERRERA 10/12/2015 16:44:43
#454993
Não sei exatamente o que é isso, passei pelo mesmo a 2 dias. A mensagem diz que está acessando algo em threads diferentes, o detalhe é que o visual studio não permite descobrir onde está o erro, ou não sei como fazer.

No meu caso eu abria um TXT no program.cs para carregar variáveis de localização do banco de dados SQL, e depois dentro de uma tela do aplicativo eu reconfigurava esse TXT se alterasse alguma informação, porém apareceu esse mesmo erro, pois dizia que o arquivo txt estava em uso, mas não tinha nada usando ele, até pelo windows explorer eu não conseguia excluir o txt. Não tinha thread nesse caso no meu código, deve ser algo interno do próprio C#.

Até agora não consegui descobrir e saber se o problema vai acontecer outra vez.
Tópico encerrado , respostas não são mais permitidas