4

アプリケーションの 2 つの異なる場所から同じコードを実行します。クラス内にあり、そのクラスには公開されている関数が1つしかないため、同じコードであることはわかっています。どちらの場所も同じ引数で関数を呼び出し、どちらも UI スレッドで実行されています。

この関数は、非同期 WMI クエリを使用して、名前で特定のプリンターを検索します -->

            var searcher =
                new ManagementObjectSearcher(
                    "SELECT * from Win32_Printer WHERE Name LIKE '%ZDesigner GX430t'");

            // Create an observer to trigger a callback when the search is completed.
            var watcher = new ManagementOperationObserver();
            watcher.Completed += PrinterSearchCompleted;
            watcher.ObjectReady += PrinterSearchReady;

            // Look for the printer
            _printerFound = false;
            _searchCompleted = false;
            searcher.Get(watcher);

私が抱えている問題は、ある場所から実行すると ObjectReady イベントがトリガーされず、別の場所から実行すると常にトリガーされることです。

また、別の問題は、これがコンピューター固有のように見えることです。私がこれを実行したコンピュータの中には、問題なく動作するものもあれば、上で説明した問題を示すものもあります。

私が探しているものはありますか?

4

1 に答える 1