我正在尝试打开应用程序,直到出现文件。我使用计时器每隔60秒检查一次FTP服务器(文件可能需要13到15分钟才能显示)。
while循环有效......但它占用了我CPU的50%。试图找出另一种方式。我正在考虑添加一个Windows.Form并使用Application.Run(),但是想知道Application.Exit()是否会关闭我的应用程序。
Public Shared Function CheckStatus(ByVal TaskID As String) As Boolean
_TaskID = TaskID
'Start Timer to Check Query Status Every 10 Seconds
CheckStatusTimer.Interval = 10000
CheckStatusTimer.Enabled = True
CheckStatusTimer.Start()
'Wait for Check Query Status To Complete
While _Status = False
End While
CheckStatusTimer.Stop()
CheckStatusTimer.Enabled = False
Return _Status
End Function
可以将CheckStatusTimer.Stop()放入CheckStatusTimer_Tick()子例程的完成逻辑部分。如何在计时器停止之前阻止调用函数返回?
由于 jlimited
答案 0 :(得分:0)
您正在寻找的内容称为Thread.Sleep()
:
While _Status = False
System.Threading.Thread.Sleep(500)
End While
这意味着如果状态不同,线程将每500毫秒(0.5秒)检查一次。
答案 1 :(得分:0)
这是您在后台处理任务所需的内容: http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2
另一件事,这些行是错误的:
CheckStatusTimer.Stop()
CheckStatusTimer.Enabled = False
你重复,start()方法和enabled = true属性执行相同的操作,stop()方法和enabled = false
以下是如何以后台模式下载文件的教程
http://msdn.microsoft.com/en-us/library/ms229675(v=vs.110).aspx