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.
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 ?
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.
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