[VB.NET] Gestire un ciclo con pause

giovedì 19 novembre 2009 - 16.30

marco.santilli Profilo | Junior Member

In pratica con dei comandi AT - USSD devo fare delle interrogazioni con il cell.


Praticamente avrò un ciclo di numeri da contattare automaticamente

Il problema è questo:
se faccio un ciclo, lui automaticamente invia a tutti i numeri tale stringa, cosi facendo non ottengo mai una risposta.

Il metodo corretto sarebbe:

invio la chiamata
attendo la risposta
proseguo con il ciclo

in pratica come se mettessi una pausa


Il codice è questo.
Per provare non ho fatto un ciclo vero e proprio ma invio 2 volte le stringhe, quindi devo cercare una pausa in mezzo o altri metodi a me non noti.




Private Sub btnConsultaMultiplo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsultaMultiplo.Click
Dim ussd As String = ""
ussd = "*#214*03920212301***#"
serialPort.WriteLine("AT+CUSD=1," & Chr(34) & ussd & Chr(34) & ",15" & vbCrLf)
' ---------------- divisione tra primo invio e secondo, il secondo deve partire dopo che ho avuto una risposta dal primo
ussd = "*#214*03921152401***#"
serialPort.WriteLine("AT+CUSD=1," & Chr(34) & ussd & Chr(34) & ",15" & vbCrLf)
End Sub

Brainkiller Profilo | Guru

>Il problema è questo:
>se faccio un ciclo, lui automaticamente invia a tutti i numeri
>tale stringa, cosi facendo non ottengo mai una risposta.

Non ti è sufficiente un

Thread.Sleep(1000)

dove 1000 è il numero di millisecondi di attesa ? (1 secondo)

David De Giacomi | <empty>
http://blogs.dotnethell.it/david/

marco.santilli Profilo | Junior Member

Azz...non ci avevo pensato!!!!!

Ho impostato (5000) quindi sono 5 sec????

In questi 5 sec logicamente il pc è come congelato?

Si può mettere questo controllo su un thread cosi lavora apparte e non mi blocca l'applicazione????

Brainkiller Profilo | Guru

>Azz...non ci avevo pensato!!!!!
>Ho impostato (5000) quindi sono 5 sec????

Eh direi di sì

>In questi 5 sec logicamente il pc è come congelato?

Non è il PC congelato, è il Thread corrente che si addormenta. Se non hai un thread dedicato si addormenta l'esecuzione del Thread che tiene in piedi l'applicazione.

>Si può mettere questo controllo su un thread cosi lavora apparte
>e non mi blocca l'applicazione????

Oppure ecco, puoi creare un thread ad hoc e così non dà fastidio al thread che tiene in piedi la app e quindi la UI.
Ciao


David De Giacomi | <empty>
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5