为什么我不能在线程池中启动线程?

Why i can't start thread in thread pool?

我刚刚创建了线程函数:

static void ThreadMethod {}

然后试试这个:

ThreadPool.QueueUserWorkItem(ThreadMethod);

但是QueueUserWorkItem请求WaitCallback对象。

这只是我书中的示例,看起来它必须以这种方式工作。我错过了什么?

我认为这是一个错字

不是:

static void ThreadMethod {}

但是:

static void ThreadMethod(object sender) {//Method stuff go here}

并将其称为

ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadMethod));

一个有效的最小案例 + 传递给线程的参数

using System;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            paras myvalues = new paras();

            myvalues.para1 = 10;
            myvalues.para2 = 20;

            ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadMethod),myvalues);


            Console.ReadKey();
        }

        static void ThreadMethod(object state)
        {
            paras vals =(paras) state;

            Console.WriteLine(vals.para1);
            Console.WriteLine(vals.para2);

        }

    }

    struct paras
    {
        int Para1;

        public int para1
        {
            get { return Para1; }
            set { Para1 = value; }
        }

        int Para2;

        public int para2
        {
            get { return Para2; }
            set { Para2 = value; }
        }
    }
}