2012-11-05 73 views
1

我有下面這段代碼被安裝的打印機列表中爲組合框:應用冷凍/掛在Printing.PrinterSettings.InstalledPrinters迭代

For Each s As String In Printing.PrinterSettings.InstalledPrinters 
     edtPrinter.Items.Add(s) 
    Next 

不過我有帶安裝一個客戶端的問題,可能與假脫機服務,這個迭代掛起並鎖定我的應用程序。我可以通過點擊該特定計算機上控制面板中的「設備和打印機」在觸發器中觸發相同的「掛起」。重新啓動Spool32會導致應用程序釋放,直到迭代被再次擊中。

與其解決他們的假脫機程序問題,如何最好地實現某種超時或以其他方式防止此調用凍結我的應用程序,如果有後臺打印程序問題?我無法真正地在單獨的線程上調用此函數 - 有沒有更好的方法來調用此屬性而不會將我的應用程序暴露給凍結?

回答

0

一種可能性:有時,在沒有安裝打印機的機器上訪問Windows打印功能時,Windows會崩潰。確保您的客戶端至少安裝了一臺打印機。

+1

我修復了最初的問題 - 一個損壞的打印驅動程序。問題是一個損壞的打印驅動程序導致我的應用程序無響應,這反映了我的應用程序 - 沒有多少說服力 - 包括向用戶顯示在Windows資源管理器中發生了同樣的事情 - 會說服他們,否則,因爲他們「看到它首先發生「在我的應用程序。 – Molloch