2012-12-15 33 views
2

所以這裏是我的程序的細分。它是測量指定端口上的服務器延遲的工具。在指定的時間間隔後致電事件

因此,目前我有一個手動檢查來查找特定端口上的服務器。然後我每500毫秒ping這臺服務器,並根據這個ping更新一些GUI元素。

我在後臺線程中完成了ping操作,每次ping後我都調用thread.sleep(500)。

對這些事件使用定時器會更好嗎?

我想每5秒檢查一次服務器,並且每500毫秒ping一次。

+0

「會更好嗎?」定義「更好」。一般來說,以最簡單,最可維護的方式完成您的任務是最好的方式。 –

回答

1

使用2個定時器。睡覺的線程是可怕的表現。當5秒計時器執行時,禁用500毫秒計時器。完成執行後,啓用它。這是實現它的最簡單和最有效的方式,IMO。

或者,不要禁用計時器,如果沒關係。只要保持雙方都行,你就會好起來的。

+0

非常接近最終工作的結果。 – NMunro

0

您可以使用任務計劃程序API,並設置一個時間的任務,將未來5 seconds.Nice後啓動的應用程序管理的wrraper:taskscheduler.codeplex.com

0

當您使用的睡眠,不要緊多久你任務需要。睡500ms,做5小時的任務,然後再次入睡。

如果您使用定時器,則必須處理您的任務可能與下一個定時器事件觸發重疊的可能性。這使事情更加複雜。