2011-05-14 30 views
2

我有一個Windows服務,它輪詢數據庫的任何類型的doc,docx,pdf和rtf上傳的文件,並將它們轉換爲HTML並將它們保存到本地文件系統。這些文檔從數據庫中獲取並在內存中排隊,然後由多個線程從共享隊列中處理。我們可以使用多線程將Microsoft Word文檔轉換爲C#中的HTML嗎?

我面臨的問題是,處理在一段時間內變慢。在最初的幾天內,轉換髮生得更快,例如對於大小爲50 KB的文檔,2秒,對於同一文檔,在幾天後,例如20秒,轉換速度會更慢。我可以看到隨着時間的推移,處理時間呈下降趨勢。我無法確定導致這種下降趨勢的原因。即使重新啓動Windows服務也無濟於事。

Microsoft Office安裝在Windows Server上進行文檔轉換。每天將近2000個文檔正在轉換爲HTML。

所以我的問題是我們可以使用多線程處理Microsoft Word文檔爲HTML?

回答

3

我認爲您已經儘可能多地使用多線程 - 您無法讓Word更高效,只需並行運行多個Word實例即可。我建議花更多時間進行調查。

做一些記錄/追蹤和剖析。找出哪些代碼/方法是非常慢的。

如果事實證明是慢的話,請嘗試看它和系統。緩慢來自哪裏?它使用了所有的CPU嗎?也許磁盤訪問得太多了?也許有太多的臨時文件收集在某個地方?或者你的內存不足,Windows就像瘋了一樣交換?在最後一種情況下,什麼是全部使用它?也許你沒有正確地關閉一些東西(比如Word本身或者你打開的文件)?

+0

+1,因爲您指出可能的根本原因 – Tahbaza 2011-05-14 22:00:33

相關問題