Я использую. net 4.7.2 (не ядро) и C#.
Мне нужно придумать способ, чтобы не блокировать мои текущие асинхронные c задачи, и я есть необходимость поиска пользователя как часть этих задач. Ранее я выполнял операции DirectorySearcher, поэтому я знаю, что вложение в AD и первый поиск могут занять несколько секунд, что действительно вызовет рывок в передачах, если я попытаюсь вызвать его из моих существующих асин c методов.
Я обнаружил, что DirectorySearcher имеет свойство "Asynchronous". Но я не думаю, что он использует шаблон asyn c.
DirectorySearcher ds = new DirectorySearcher();
ds.Asynchronous = true;
ds.Filter = "(&(objectclass=user)(samaccountname=testaccount)";
ds.PropertiesToLoad.Add("samaccountname");
SearchResult sr = await ds.FindOne();
Конечно, последняя строка выдает ошибку, потому что FindOne не является асинхронным c методом. Я уже знаю, что если я удалю ожидание, оно будет скомпилировано. Но это не решает мою проблему с вызовом этого из существующих ожидаемых методов. Мне нужно найти способ сделать asyn c поиск в AD ...
Кто-нибудь знает, как я мог заставить это работать в. net framework (не core)?