title: How to make multiple threads do work on a single TStringList
body: <p>I want to be able to make multiple threads do work on a single <code>TStringList</code>. This is my current Thread code for using a single thread to do the work;</p>
  
  <pre><code>type
    TFilterThread = class(TThread)
    protected
      procedure Execute; override;
    public
      lCombos : TStringList;
      //Public Vars
    end;
  
  procedure TFilterThread.Execute;
  var
    I: integer;
    HTML: String;
    frm1 : TForm1;
    splitLogin: TStringList;
    validCount: Integer;
  begin
    validCount := 0;
    for I := 0 to lCombos.Count - 1 do
      begin
        if Terminated then Exit();
        Unit1.Form1.ListBox1.ItemIndex := i;
        try
          HTML := Unit1.Form1.IdHTTP1.Get(EmailCheckURL + lCombos[i]);
          if AnsiPos('You indicated you', HTML) &gt; 0 then
          begin
            //Do stuff
          end;
  
        except
          Continue;
        end;
      end;
      Showmessage('Finished!');
      Unit1.Form1.Button1.Caption := 'Start';
  end;
  </code></pre>
  
  <p>To Start the thread I use;</p>
  
  <pre><code>lComboLsit := TStringList.Create;
  for I := 0 to listBox1.Items.Count -1 do
      lComboLsit.Add(listBox1.Items[i]);`
  
  iTFilterThread := TFilterThread.Create(True);
  iTFilterThread.FreeOnTerminate := True;
  iTFilterThread.lCombos := lComboLsit;
  
  iTFilterThread.Start;
  </code></pre>
  
  <p>How would I introduce another thread to also do work on the <code>lCombos</code> list so that the operation would complete quicker? </p>