アプリケーションの 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 イベントがトリガーされず、別の場所から実行すると常にトリガーされることです。
また、別の問題は、これがコンピューター固有のように見えることです。私がこれを実行したコンピュータの中には、問題なく動作するものもあれば、上で説明した問題を示すものもあります。
私が探しているものはありますか?