No,non li conosco molto bene, sto iniziando ora a confrontarmici per l'università.

Vediamo.
Io per ora ho creato un metodo che apre e legge il file inserendo ogni riga di questo in una listbox.

Suppongo che il delegate che dicevi vada dichiarato tipo questo sotto:

codice:
private delegate void ckFile();
Ecco il metodo che ho creato:
codice:
        public void CheckFile()
        {
            /* mi è sembrato di capire qua e la che questo pezzo di codice serve poi quando si lancia il thread...?
            if (lstbox.InvokeRequired) 
                {
                    lstbox.Invoke(new ckFile(CheckFile));
                    return;
                }
            */

            //cancello la listbox
            for (int i = lstbox.Items.Count - 1; i > 0; i--)
            {
                lstbox.Items.Remove(lstbox.Text);
            }

            //Leggo il file
            StreamReader sr = File.OpenText("dati.txt");
            string riga = "";
            do
            {
                lstbox.Items.Add(riga);
                riga = sr.ReadLine();      
            } 
            while (riga != null);

            sr.Close(); 
        }
Come dovrei fare per quanto riguarda il thread?

Grazie.