Bonjour,
je me permet de poster mon sujet sur ce forum car je ne trouve pas de solutions, voila j'ai une procédure 'envoi_general_sms' qui prend en paramètre un string 'msgs' contenant le message à envoyer.
Cette procédure est chargé d'envoyer un message à tout les numéros de téléphone contenu dans la list 'identite_phone_general', la voici :
la procédure 'envoi_sms' est chargé d'envoyer sur un port série la trame à un modem GSM afin d'envoyer un sms :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'on envoi a tout le personnel un sms utiliser avec appel.vb pour envoyer un msg a tout le monde Public Sub envoi_general_sms(ByVal msgs As String) telephone_loaded() 'on remplis d'abord la list If identite_phone_general.Count = 0 Then 'si elle est vide on quitte la porcédure Exit Sub Else Dim i As Integer For i = 0 To identite_phone_general.Count - 1 envoi_sms(identite_phone_general(i), msgs.ToString) Thread.Sleep(2000) Next End If End Sub
Mon soucis est que pour un seul envoi de sms, ca fonctionne bien l'application ne se fige pas, mais lorsque je dois envoyer plusieurs SMS à l'aide de la procédure 'envoi_general_sms' l'application est bloqué jusqu’à ce que tout les sms soit envoyé a la list 'identite_phone_general'. en effet je dois attendre 2 secondes entre chaque envoi le temps que le modem envoi la trame.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Sub envoi_sms(ByVal numero As String, ByVal message As String) If Test_RS232.SP_GSM.IsOpen = False Then log("Impossible d envoyer un sms le port COM est ferme") Exit Sub Else Dim carac As Char = ChrW(26) 'caractére de fin pour confirmer l'envoi Dim car_fin As String = "" Test_RS232.SP_GSM.WriteLine("AT+CMGS=" & numero & car_fin) Test_RS232.SP_GSM.WriteLine(message + System.Environment.NewLine + carac) End If
Ainsi comment puis je faire pour éviter le blocage de l'application durant l'envoi de tout les SMS ?
Partager