Cześć,
Na podstawiem artykułu o wątkach : http://codeguru.pl/article-656.aspx napisałem kawałek kodu:
class Program
{
public class Watki
{
public Thread thWatek1;
public Thread thWatek2;

        public Watki()
        {
            thWatek1 = new Thread(watek1);        
            thWatek2 = new Thread(watek2);
        }

        public void watek1(object prefiks)
        {
            for (int i = 0; ; i++)
            {
                Console.WriteLine("watek1 " + prefiks.ToString() + i.ToString());
                Thread.Sleep(500);
            }
        }
        public void watek2()
        {
            for (int i = 0; ;i++ )
            {
                if (i > 25) i = 0;
                Console.WriteLine("watek2 "+ (char)(i+'a'));
                Thread.Sleep(500);
            }
        }
    }

    static void Main(string[] args)
    {
        
        Console.WriteLine("odpalamy watki w pulli");

         // ?????????????????????
        *ThreadPool.QueueUserWorkItem(a.watek2); *???????

        ThreadPool.QueueUserWorkItem(a.watek1,"pula ");
        ThreadPool.QueueUserWorkItem(delegate { a.watek2(); });
        

        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine("w miedzyczasie liczymy do 10 :" + i);
            Thread.Sleep(300);
        }

    }
}

}

Podczas póby dodanie wątku do puli : ThreadPool.QueueUserWorkItem(a.watek2); kompilator zgłasza błąd: cannot convert from 'method group' to 'System.Threading.WaitCallback'. Wynika z tego że typ argumentu ThreadPool.QueueUserWorkItem() to System.Threading.WaitCallback który ma jeden argument i do niego jest rzutowany a.watek2. Sprawę rozwiązue więc dodanie do a.watek2 jakiegos arugmentu.
Dlaczego jednak nie ma błędu jeśli do dorzucenia metody a.watek2 do puli zastosujemy (jak powyżej) funkcje anonimową :
ThreadPool.QueueUserWorkItem(delegate { a.watek2(); });
?
Proszę o pomoc - to moje początki w c# :-)
pozdrawiam
takedo