1

インストールされているプリンターのリストをコンボボックスに取得する次のコードがあります。

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

ただし、単一のクライアントのインストールに問題があります。おそらくスプール サービスに問題があり、この繰り返しがハングしてアプリをロックします。その特定のコンピューターのコントロール パネルの [デバイスとプリンター] をクリックすると、エクスプローラーで同じ「ハング」をトリガーできます。Spool32 を再起動すると、反復が再びヒットするまでアプリが解放されます。

スプーラの問題を修正するのではなく、何らかのタイムアウトを実装するか、スプーラの問題がある場合にこの呼び出しがアプリをフリーズするのを防ぐにはどうすればよいですか? これを別のスレッドで問題なく呼び出すことはできません。アプリをフリーズにさらさずにこのプロパティを呼び出すより良い方法はありますか?

4

1 に答える 1

0

1 つの可能性: プリンターがインストールされていないマシンで Windows 印刷機能にアクセスすると、Windows がクラッシュすることがあります。クライアントに少なくとも 1 つのプリンターがインストールされていることを確認してください。

于 2012-11-05T02:34:24.380 に答える