int a=0;
Thread th=new Thread(new ThreadStar(Function));
th.Start(ref a);
Function 是一个返回整数的方法。
我的目的是想通过参数传递,改变a的值,请问这样可以吗????
Thread th=new Thread(new ThreadStar(Function));
th.Start(ref a);
Function 是一个返回整数的方法。
我的目的是想通过参数传递,改变a的值,请问这样可以吗????
调试欢乐多
ThreadStart 委托定义是返回void的。你是返回int的。
public delegate void ThreadStart ()Thread中也没有定义带ref参数Start()方法,所以不行
int i = 0;
new Thread(() =>
{
Thread.Sleep(10);
int j = Function(ref i);
}).Start();
Console.WriteLine(i);
Thread.Sleep(10);
Console.WriteLine(i);
static int Function(ref int i)
{
i = 10;
return 1;
}
{
Thread.Sleep(10);
int j = Function(ref i);
}).Start();
()=> 是什么意思?
获取委托执行结果
2.0的话这么写 new Thread(
delegate()
{
Thread.Sleep(10);
int j = Function(ref i);
}
).Start();
Console.WriteLine(i);
Thread.Sleep(10);
Console.WriteLine(i);
new Thread(delegate(){
Thread.Sleep(10);
int j = Function(ref i);
}).Start();
new Thread(() =>
{
Thread.Sleep(10);
int j = Function(ref y);
}).Start();
AutoResetEvent are = new AutoResetEvent(false);
int i = 0;
new Thread(() =>
{
Thread.Sleep(1000);
int j = Function(ref i);
are.Set();
}).Start();
Console.WriteLine(i);
are.WaitOne();
Console.WriteLine(i);
(阿非 (艰难困苦,玉汝于成!))强人!!!谢谢哈~~~~~