public RemoteEntity(String name, String url, String pmUrl, int queueSize, int numThreads)
 {
     this.Name = name;
     this.Url = url;
     this.PmURL = pmUrl;
     this.events = new EventQueue(queueSize);
     this.RemoteNetwork = new RemoteNetwork();
     this.numThreads = numThreads;
 }
        public FaultManager(RemoteEntity re, int queueSize, int numThreads)
        {
            this.TMonitor = new TimeoutMonitor(this);
            this.RemoteEntity = re;
            this.missedACKs = new Dictionary<string, Dictionary<string, Pair<DateTime, int>>>();
            this.Events = new EventQueue(queueSize);

            for (int i = 0; i < numThreads; i++)
            {
                Thread t = new Thread(ProcessQueue);
                t.Start();
            }
        }