我們正在撰寫一個應用程序,該應用程序將從各種文件中提取第一個文本,然後提取圖像。QTAgent32保存文件打開
在我們的測試腳本中,我們發現一旦我們已經提取文本並嘗試打開文件進行圖像提取,該文件被另一個進程保持打開。
我們已經關閉了對文件的所有引用,將它們處理並設置爲null。
使用Process Explorer,我們發現它是QTAgent32,它保持打開狀態。
我們怎樣才能告訴這個庫釋放句柄,或者這是一個已知的錯誤,它不會影響生產代碼?
我們正在撰寫一個應用程序,該應用程序將從各種文件中提取第一個文本,然後提取圖像。QTAgent32保存文件打開
在我們的測試腳本中,我們發現一旦我們已經提取文本並嘗試打開文件進行圖像提取,該文件被另一個進程保持打開。
我們已經關閉了對文件的所有引用,將它們處理並設置爲null。
使用Process Explorer,我們發現它是QTAgent32,它保持打開狀態。
我們怎樣才能告訴這個庫釋放句柄,或者這是一個已知的錯誤,它不會影響生產代碼?
QTAgent32是Visual Studio的測試運行器。
這意味着您的測試有一個忘記關閉的FileStream
。
嘗試在調試中運行測試,暫停執行,並查看您破解的內容。 (關於這個「窮人分析」技術,在stackoverflow的某處有個很好的答案)。
我以這種方式解決了這個問題的實例。在第一次嘗試時,我很驚訝地看到執行中斷致電NetworkStream.Read。它運行在後臺線程上,所以測試仍然通過,但顯然不打算包含在測試中。它無論如何都是死代碼,所以我完全刪除它,重新啓動VS,並且測試再次平穩運行。
謝謝,當我們回到那個項目時,會試試看 – griegs 2011-12-15 23:13:50
你在你的代碼中使用QTAgent,或者它是一些隨機的,無法訪問的進程發生訪問這些文件? – soandos 2011-05-12 00:44:24
什麼是QTAgent32的命令行? – SLaks 2011-05-12 00:45:05
在我們的代碼中不使用QTAgent。 – griegs 2011-05-12 00:46:34