发送短信的应用程序出现问题

每当有人在系统中注册时,我都有一个发送SMS的应用程序。

我的问题是,当2个用户同时注册时,系统不会发送相应的短信

例如,在120位注册用户中,只有110位收到确认短信。

该SMS是使用HUAWEI E3131调制解调器从此应用程序发送的,我通过USB将其配置为调制解调器。

如何防止任何邮件排队?

Dim lockObject as New Object()

SyncLock lockObject

    TextBoxMODEM.Clear() 'NUEVO MENSAJE

    SerialPort1.Write("AT" & vbCrLf) 'COMPRUEBA LA CONEXION CON EL MODEM

    Threading.Thread.Sleep(100)

    SerialPort1.Write("AT+CMGF=1" & vbCrLf) 'INDICA QUE VA A ENVIAR SMS

    Threading.Thread.Sleep(100)

    SerialPort1.Write("AT+CMGS=" & Chr(34) & TelefonoTextBox.Text & Chr(34) & vbCrLf) 'ENVIARA EL MENSAJE SIN ALMACENAMIENTO

    Threading.Thread.Sleep(100)

    SerialPort1.Write(Mensaje.ToString & Chr(26)) ' ENVIA EL MENSAJE

End SyncLock
wu540642448 回答:发送短信的应用程序出现问题

可以使用一个对象来同步对关键代码段的访问。但是,所有线程都应看到同一对象。如果您要在SyncLock上方声明它,则应该

使用VB.NET中的Static关键字将其本地静态化,以同步同一实例上的访问

Class A
    Sub B
        Static lockObject as New Object()
        SyncLock lockObject

或在类级别将其声明为实例字段,以同步对同一实例的访问

Class A
    Private lockObject as New Object()
    Sub B
        SyncLock lockObject

或使用VB.NET中的Shared关键字将其声明为静态字段,以同步对所有实例的访问

Class A
    Shared lockObject as New Object()
    Sub B
        SyncLock lockObject

如果您有多个实例需要同步访问一个块,请使用第三个选项。当每个实例需要同步时,前两个很有用,例如,每个实例可能有一个串行端口,而不会干扰其他实例的端口。

排队在任何情况下都不是坏主意。

本文链接:https://www.f2er.com/3164305.html

大家都在问