Bueno lo del titulo es que estaba pensando en ponerle a mi app de Spamming una Opcion que cuente cuantos correos va enviando en un label, la redaccion seria simple, ya que la app envia correos en un loop y en ese loop pondria el codigo del label aumentando 1 numero.
Pero ese es el detalle como hago para que un label cambie su texto?
Basicamente es esto:
Label1 'va a empezar en 0'
y despues que con cada loop que se haga vaya aumentando 1.
label1 "1"
label1 "2"
label1 "3"
label1 "4"
label1 "5"
No se si me entienden la idea?
entonces es eso que cambie su texto de 0 a 1 de 1 a 2 y haci hasta que se cierre el programa.
Gracias espero su Ayuda...!!! ;D
No se si sera esto, pero es muy simple lo que estas pidiendo....
usa un contador y lo pones al final del bucle con el que mandas mails
Dim contador As Int32 = 0
Do while (...)
' enviar por gmail
contador += 1
Label1.Caption = contador
Loop
que es un contador? :xD
no se que es
Un contador es una variable que se usa para contar :laugh: :laugh:
Imagina asi:
Dim MailsMandados As Integer = 0
Do while (...)
' enviar por gmail
MailsMandados = MailsMandados + 1
Label1.Caption = MailsMandados
Loop
ok yo puse el dim para cambiarle el nombre en el primer ejemplo que pusistes.
y pege el resto del codigo en el loop de mi programa, el nombre de mi label es Numeroenvio.
pero hay un detalle en el vb.net no me lee el Texto "Caption" me da error, me imagino que un equivalente a ese sera el "text" pero lo puse y me dijo error.
Haci lo puse mira
Do
correo.From = New MailAddress("correo.spammer@gmail.com", "")
envio.Credentials = New NetworkCredential("correo.spammer@gmail.com", "")
envio.Host = "smtp.gmail.com"
envio.Port = 587
envio.EnableSsl = True
envio.Send(correo)
contador += 1
Numeroenvio.Text = contador
Loop
no se que fallara echame una mano porfa por cierto, este proceso completo incluyendo el loop es llamado por un Thread tendra esto algo que ver?
;D ;D ;D ;D disculpas.....tenia el visual basic 6 en la cabeza xD XD
jajaja...sip, era Text, pero si te da error es porque tienes Option Stric On (no te deja poner cualquier tipo en lugar de otro, en este caso, no te deja poner uan variable integer en lugar de un string que es el Text)
prueba
Numeroenvio.Text = contador.ToString()
mira probe todos los ejemplos y todos me da este error:
"Operacion no valida a traves de subprocesos: Se tuvo acceso al control "Numeroenvio" desde un subproceso distinto a aquel en que lo creó"
a mi me parece que es porque esta en el Sub del proceso del Thread que es el que hace que el programa no se cuelgue.
Por cierto el label que utilize tiene de texto 0 tiene que estar vacio o no importa?
Graciass
ya revise el codigo si funciona pero no desde un subproceso como el thread, en cambio lo puse en un sencillo boton y funciono Gracias Raul.
Aunque tengo que ver como lo logro ya que la unica forma de usarlo es en el thread ya que si lo pongo en el boton no tendria uso alguno puesto que el boton solo llama el proceso del Thread.
Gracias por la ayuda ya me toca echarme coco a mi :xD
jejeje... recuerdas tu guia para uso de threads?? recuerdas lo que te conteste??
Cita de: raul338 en 29 Agosto 2009, 22:50 PM
jojojo....threads simples ;D
aver, sigamos en el siguente nivel!!! ::)
Escribe (o amplia) el tutorial para comunicar entre threads.... Te digo el tipico caso de error....
Tienes un thread principal que muestra un formulario
Tienes otro thread que hace algun calculo, etc
para avisa que termino el thread calculo, éste al final de su codigo "Label2.Text = 'Listo'", lo ejecutas y !BEEP!, error. Los threads no se pueden comunicar directacmente (el trhead2 no puede acceder al thread1 directamente) (Bueno en realidad si se puede poniendo en falso una propiedad general, pero solo funciona en formularios y no es muy segura que digamos)
Si necesitas ayuda contesta aca.....o MP :P
no soy vidente, sino que te esta pasando lo mismo que a mi :P :P
jajaja que cosas no.
Lo resolvi de esta manera, puse un timer que cambiara el texto del label cada 2500 ms que es el tiempo en que envia un E-mail y ya!!! xDD
Ahora si tengo que supperrr revisar temas sobre multithreading xD ya que mi solucion fue un poco chapuzera jejejeje
jajaj viste, eso es una forma "cutre" de hacerla xD (arreglarlo con alambres)
Mira, te explico en teoria, tu llamas a una funcion que se encarga de actualizar los datos del formulario (label, progressbar, etc) como si fuera una funcion comun. Dentro de esa funcion, debes hacer un IF y preguntar si estas en el thread correcto, si lo esta, cambiar los datos... bla bla bla..... Si no lo esta, invokar un nuevo delegado para que se asigne el thread indicado y no tire error de "Operacion no valida entre subprocesos". Es la mejor forma de hacerlo ;)