我試圖擴展第三方應用程序,以便除了使用窗體窗體GUI(需要混合模式)外,還可以通過命令行調用它。這是一個相當簡單的程序,基本上加載一個文件,然後你點擊一個按鈕開始發送UDP網絡數據包。添加了{APPTYPE CONSOLE}指令,現在我的應用程序運行非常緩慢。移動鼠標使其運行速度更快
我需要調用另一個應用程序,並希望傳入參數,並且需要能夠將ExitCode返回給調用應用程序。從我讀過的,爲了做到這一點,你需要添加編譯器指令{APPTYPE CONSOLE}。
我做到了這一點,我的應用程序工作,因爲我想它,除了發送網絡數據包緩慢爬行。 我發現,只要我在窗體上移動鼠標。網絡傳輸速率顯着增加。我懷疑有某種類型的Windows消息隊列問題,並且移動的鼠標造成中斷,這反過來導致消息隊列被處理?
我搜索了一遍,並嘗試調用Application.ProcessMessages和PeekMessages在1ms間隔的計時器,並沒有任何幫助。我發現在這個user manual for some other application它說Indy 10在APPTYPE CONSOLE和GUI類型都支持。坦率地說,這只是讓我感到困惑,因爲我認爲所有的網絡庫都可以在兩種模式下工作......但就像我說的,我不熟悉Delphi。
我認爲這個問題在我的應用程序中被隔離到一行,並且是否包含{APPTYPE CONSOLE}。
任何人有任何想法?
版本信息:
德爾福7個人(編譯4.453)
印第9.0.4
我試過了。它將回顯0.當應用程序不包含{APPTYPE CONSOLE}行時,從命令行調用應用程序時,它立即返回。然而...如果可能的工作是「開始/等待」。明天我會試一試。 –
blak3r
2009-07-29 06:03:26
@Gerry我首先給出了建議ExitCode方法的+1。我認爲mghie的回答比較完整,所以我選擇他作爲公認的解決方案。感謝您的貢獻! – blak3r 2009-07-30 05:35:49