我刚刚创建了线程的功能:
static void ThreadMethod {}
试试这个:
ThreadPool.QueueUserWorkItem(ThreadMethod);
但QueueUserWorkItem
请求WaitCallback
对象。
这只是我书中的例子,看起来它必须以这种方式运作。我错过了什么?
答案 0 :(得分:3)
我认为这是一个错字
不是:
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; }
}
}
}