是否有可能通過多線程(Task.Run
等)或任何其他好技術幫助改善以下功能的響應時間?活動目錄提高在C#中的性能 - WPF
UserCollection = new ObservableCollection<User>();
public void FillUserList(string machineName, string groupName)
{
UserCollection.Clear();
if (string.IsNullOrEmpty(machineName) || string.IsNullOrEmpty(groupName))
return;
var machineContext = new PrincipalContext(ContextType.Machine, machineName, null, ContextOptions.Negotiate);
var group = GroupPrincipal.FindByIdentity(machineContext, groupName);
var members = group.GetMembers();
foreach (var member in members)
{
var user = new User { DisplayName = member.Name, UserId = member.SamAccountName };
UserCollection.Add(user);
}
}
您是否看到緩慢?您目前對這種方法的性能有什麼經驗? –
是的,隨着組中用戶數量的增加,性能越來越差。如果任何組有2個用戶(5秒)7個用戶(12-14秒)回覆! – user2229874
代碼看起來非常直截了當,我能想到的唯一的事情是網絡問題是延遲問題,或者在分配成員變量後嘗試設置machineContext = null也在您的方法內放置UserCollection對象,除非您沒有顯示完整該對象的範圍如果不知道FillUserList被調用的頻率,我無法分辨。 – MethodMan