// Summary:
 //     Gets the True Last Logon date-time stamp for this Principal and the server on which the logon event occurred
 //
 // Returns:
 //     The True Last Logon date-time stamp of the Principal and the server on which the logon event occurred
 //
 // Exceptions:
 //
 public TrueLastLogonResults GetTrueLastLogon(double timeoutSeconds)
 {
     var results = new TrueLastLogonResults();
     var DCs = (from DomainController dc in Domain.GetComputerDomain().DomainControllers select dc.Name).ToList();
     try
     {
         var threads = new Thread[DCs.Count];
         for (var i = 0; i < threads.Count(); i++)
         {
             var tll = new ThreadedLastLogon {Dn = DistinguishedName, Dc = DCs[i]};
             ParameterizedThreadStart starter = GetTrueLastLogonThreadWork;
             threads[i] = new Thread(starter);
             threads[i].Start(tll);
         }
         for (var i = 0; i < threads.Count(); i++)
         {
             try
             {
                 threads[i].IsBackground = true;
                 threads[i].Join(TimeSpan.FromSeconds(timeoutSeconds));
             }
             catch
             {
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
     results.Server = _trueLastLogonServer;
     results.TrueLastLogon = _trueLastLogonDt;
     return results;
 }