查到创建线程是这样的格式:
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楼的当然更简洁