【问题标题】:Keeping Application running保持应用程序运行
【发布时间】:2014-06-10 11:13:59
【问题描述】:

我正在尝试让应用程序保持打开状态,直到出现文件。我使用计时器每 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() 子例程的完成逻辑部分。如何防止调用函数在计时器停止之前返回?

谢谢 有限的

【问题讨论】:

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


    【解决方案1】:

    你要找的东西叫Thread.Sleep()

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

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

    【讨论】:

      【解决方案2】:

      这是您在后台处理任务所需要的: 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-16
        • 2013-05-06
        • 1970-01-01
        • 1970-01-01
        • 2010-11-17
        • 2013-03-03
        • 2022-12-05
        相关资源
        最近更新 更多