VB6 USANDO DLL CRIADA NO C#
bom dia amigos,
estou utilizando os recursos do C# através de uma DLL para implementar no VB6, o problema que me ocorre é o seguinte:
tenho um método que faz download do FTP, porém eu gostaria de que a medida que fosse fazendo o download o Vb6 recebesse o retorno desse progresso pra mim alimentar meu progressbar, no entanto a tela fica travada até que o processo termine. é possÃvel no vb6 algo do tipo multi-tarefas (threads) como poderia fazer isso ?
estou utilizando os recursos do C# através de uma DLL para implementar no VB6, o problema que me ocorre é o seguinte:
tenho um método que faz download do FTP, porém eu gostaria de que a medida que fosse fazendo o download o Vb6 recebesse o retorno desse progresso pra mim alimentar meu progressbar, no entanto a tela fica travada até que o processo termine. é possÃvel no vb6 algo do tipo multi-tarefas (threads) como poderia fazer isso ?
SAMUCATNB,
Quer um exemplo de VB6 usando multithreads?
Aqui tem:
MULTITHREADING VB6
http://www.vbmania.com.br/index.php?modulo=detalhe&id=9325
Veja se te ajuda.
Mas acho melhor você tentar antes o [Ô]DoEvents[Ô].
http://support.microsoft.com/kb/118468/pt-br
[][ô]s,
Tunusat.
Quer um exemplo de VB6 usando multithreads?
Aqui tem:
MULTITHREADING VB6
http://www.vbmania.com.br/index.php?modulo=detalhe&id=9325
Veja se te ajuda.
Mas acho melhor você tentar antes o [Ô]DoEvents[Ô].
http://support.microsoft.com/kb/118468/pt-br
[][ô]s,
Tunusat.
Olá Tunusat, acho que meu grande problema é essa integração com a dll, porque quando passa pelo comando que vai executar o que está na dll, aà ele fica travado até terminar o download, e só após ter concluido ele retorna. e na verdade eu gostaria que enquanto ele estivesse executando a tarefa na dll, de tempo em tempo a dll me retornasse o status.
não sei se tenho que tratar no vb6 isso, ou se tenho que tratar na minha dll feita em C#.
não sei se tenho que tratar no vb6 isso, ou se tenho que tratar na minha dll feita em C#.
SAMUCATNB,
Experimente colocar uns [Ô]DoEvents[Ô] no VB6.
Experimente colocar [Ô]multithead[Ô] no VB6 para fazer vários disparos da DLL em C# trabalhando cada thread somente com pedaços do download.
[][ô]s,
Tunusat.
Experimente colocar uns [Ô]DoEvents[Ô] no VB6.
Experimente colocar [Ô]multithead[Ô] no VB6 para fazer vários disparos da DLL em C# trabalhando cada thread somente com pedaços do download.
[][ô]s,
Tunusat.
não entendo nada de c# mais por acaso existe função para disparar eventos??
RaiseEvent [Ô]Evento[Ô] [ô]no vb6
ai vc coloca no seu sistema qdo a dll disparar o evento ...
RaiseEvent [Ô]Evento[Ô] [ô]no vb6
ai vc coloca no seu sistema qdo a dll disparar o evento ...
vou tentar quebrar em partes no C# , mas mesmo assim quando iniciar o download se ele travar dessa forma não conseguiria obter o andamento do download, nem mesmo colocar um progressbar daqueles que fica enganando o o usuario..rsrs,
Você provavelmente está usando algum método no C# que faz o download de forma sÃncrona, travando assim a execução até que o download termine, você provavelmente vai ter que mudar isso para alguma forma assÃncrona para não travar.
muito interessante Ocelot, você tem uma ideia de como poderia fazer isso ?
Não sem saber como você está fazendo o download.
Existem várias formas de se fazer isso em C#, muitas vezes os métodos que efetuam um processo demorado eles disponibilizam um outro método que faz a mesma coisa de forma assÃncrona, geralmente se você tem por exemplo um método GetResponse vai ter também um BeginGetResponse e EndGetResponse, sendo o primeiro usado de forma sÃncrona e os outros dois usados em conjunto para a forma assÃncrona.
Existem várias formas de se fazer isso em C#, muitas vezes os métodos que efetuam um processo demorado eles disponibilizam um outro método que faz a mesma coisa de forma assÃncrona, geralmente se você tem por exemplo um método GetResponse vai ter também um BeginGetResponse e EndGetResponse, sendo o primeiro usado de forma sÃncrona e os outros dois usados em conjunto para a forma assÃncrona.
Tópico encerrado , respostas não são mais permitidas