保持应用程序运行

时间:2014-04-24 22:50:02

标签: vb.net console-application system.timers.timer

我正在尝试打开应用程序,直到出现文件。我使用计时器每隔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

2 个答案:

答案 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