/// <summary>
 ///
 /// </summary>
 public void ClearProxyBucket()
 {
     lock (IPProxies)
     {
         IPProxies.Clear();
     }
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="proxy"></param>
 protected void RegisterProxy(IPProxy proxy)
 {
     AgentStatus = IPProxyAgentStatusEnum.Parsing;
     lock (IPProxies)
     {
         IPProxies.Add(proxy);
     }
     InvokeEventFreeIPProxyParsed(new EventHandlers.FreeIPProxyParsedEventArgs(PageNo, TargetPgUrl, proxy));
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="proxy"></param>
 public void RemoveProxy(IPProxy proxy)
 {
     IPProxies.ToList().Remove(proxy);
 }
 /// <summary>
 /// Allow the inheriting client class to parse the content;
 /// From there, need to invoke this base method.
 /// </summary>
 /// <param name="content"></param>
 /// <returns></returns>
 protected virtual void ParseProxyPage(string content)
 {
     AgentStatus = IPProxyAgentStatusEnum.Parsed;
     // fire the event
     InvokeEventFreeIPProxiesParsed(new EventHandlers.FreeIPProxiesParsedEventArgs(TargetPgUrl, IPProxies.ToList()));
 }