1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB2008 backgroundworker e Return, incompativeis :s

Discussão em 'Programação' iniciada por ruipedro, 3 de Agosto de 2008. (Respostas: 4; Visualizações: 873)

  1. ola a todos, imaginem que tem 1 função em (VB2008) e a função devolve um valor.
    algo deste tipo:

    Código:
    Private Function porenviar() As Boolean
            return True
    End Function
    Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _ MyBase.Load
           if porenviar=true then
                msgbox("Funciona!!!")
    end sub

    Visto que a função e muito pesada coloca-me o formulario muito lento dai um backgroundworker mas eu nao consigo devolver valores com o return :S

    ficaria algo deste genero o que eu queria.


    Código:
    Public Class Form1.
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
        System.EventArgs) Handles MyBase.Load
    
            If BackgroundWorker1_DoWork_1() = True Then
                MsgBox("work")
            End If
    
    End Sub
    
    Private Sub BackgroundWorker1_DoWork_1(ByVal sender As System.Object, ByVal e As 
    System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
               return True
    End Class
    Mas este exemplo e o que eu pretendo mas o VB nao aceita isto. Se fosse possivel coloquem a soluçao para este caso, desde ja obrigado.
     
    Última edição pelo moderador: 3 de Agosto de 2008
  2. jpaulino

    jpaulino Power Member

    O Sub não retorna nenhum resultado e o Sub BackgroundWorker1_DoWork_1 não é excepção. Apenas as funções retornan algo, de acordo com o declarado. Na tua função porenviar() o resultado é booleano.

    O que queres fazer exactamente ?
     
  3. O que eu queria exactamente era fazer um background mas no fim preciso de saber o resultado da operaçao, por isso usava um return. nao estou a ver como posso fazer entao :S

    Deixa o teu mail se nao te importares. Obrigado.
     
  4. jpaulino

    jpaulino Power Member

    Então utiliza o evento do BackgroundWorker - RunWorkerCompleted que indica que terminou.
     
  5. iznougud

    iznougud I quit My Job for Folding

    Se quiseres algo mais complexo em que queres mesmo saber resultados das funcoes podes sempre criar uma classe e dentro dessa classe ter Subs que executem em threads separadas e podes usar variaveis globais dentro dessa classe para guardar os resultados que queres
     

Partilhar esta Página