VB.NET多线程SerialPort SMS延迟

时间:2012-02-24 13:28:50

标签: vb.net

想问我如何在不使用System.Thread.Sleep(interval)的情况下创建延迟。

我的应用程序充当服务器在无限循环中运行,使用serialport读取SMSINBOX以与GSM MODEM接口.readSMSINBOX()之后是延迟......这里的问题是延迟会杀死我....它挂起了我的应用程序的所有控件。除了阅读之外的其他功能,是发送,userMANAGEMENT,控制台等。任何想法我如何实现延迟消耗时间而不用挂起应用程序使用SYSTEM.TIMERS或SYSTEM.THREADING或BACKGROUNDworker ...请...我可以我在这里发布我的所有代码..不知道如何在现场网站上发布我的代码。只是一个纯粹的NOOB ..

1 个答案:

答案 0 :(得分:1)

计时器应该完全符合您的需要(它不会阻止UI)。

计时器的确切实现取决于您正在使用的VB.NET版本 你可以在这里找到一个好的(可下载的)使用计时器的例子:Working with Timer Control in VB.NET

您必须导入System.Timers

myTimer可以在主窗体的代码中变量

Timer myTimer

您可以设置它并在Form1_load

中启动它
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)

   myTimer = new Timer(30000)
   myTimer.Enabled = true 
   addhandler myTimer.Tick,addressof OnTimerEvent

End Sub 

你的(tick)处理程序就像:

Private Sub OnTimerEvent(ByVal sender As System.Object, ByVal e As System.EventArgs)

  'here you can call you communication routines

End Sub