查到创建线程是这样的格式:
public static void ThreadProc()
{}
public static void Main()
{
Thread t = new Thread(new ThreadStart(ThreadProc));
t.Start();
}
关于ThreadProc函数,假如想给他传个参数,是不是只能在public 类里定义public static 数据的方法解决?能不能想想办法按值传递局部变量的方法,主要是想传递的参数更容易销毁。
解决方案
5
public static void ThreadProc()
{
}
public static void ThreadProc(int x, int y)
{
}
Thread t = new Thread(() =>
{
ThreadProc();
int x = 1;
int y = x + 1;
ThreadProc(x, y);
});
t.Start();
你可以随便写任意的语句,甚至可以调用“外层”的变量,例如
string a = "张三";
Thread t = new Thread(() =>
{
ThreadProc();
int x = 1;
int y = x + 1;
ThreadProc(x, y);
int z = a.Length;
});
t.Start();
c# 是很优雅的。不是只能简单暴力地调用 ThreadProc 一个函数的。
5
本人现在也用的是楼上的方法
int x = 0;
(new Thread(() => { Test(x); })).Start();
void Test(int x)
{
}
10
手写代码漏了东西
Thread myThread = new Thread(new ParameterizedThreadStart(ThreadFunc));
myThread.Start(2);
static void ThreadFunc(object param)
{
int value = (int)param;
Console.WriteLine("Thread param: "+ value.ToString());
}
3楼的当然更简洁