0

我试图让应用程序保持打开状态,直到出现文件。我使用计时器每 60 秒检查一次 FTP 服务器(文件可能需要 13 到 15 分钟才能显示出来)。

while 循环有效……但它占用了我 50% 的 CPU。试图找出另一种方法。我正在考虑添加 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

4

2 回答 2

0

你正在寻找的东西叫做Thread.Sleep()

    While _Status = False
        System.Threading.Thread.Sleep(500)
    End While

这意味着如果状态不同,线程将每 500 毫秒(0.5 秒)检查一次。

于 2014-04-24T22:54:38.737 回答
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

于 2014-04-25T00:30:06.903 回答