博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C# 一个小代码的疑问,大侠解释下吧

Posted on 2011-09-19 14:02  qianyz  阅读(217)  评论(1编辑  收藏  举报

    delegate void CallBack(ref int result);
    class Program
    {
        public
        static void Main(string[] args)
        {

            int restut = -1;
            CallBack cb = new CallBack(Call);
            cb.BeginInvoke(ref restut, null, null);//异步
            while (restut != 0)
            {
              Thread.Sleep(200);
            }
            Console.Read();
        }
        public static  void Call(ref int res)
        {
            Thread.Sleep(500);
            res = 0;//修改成0,但是主函数Main中的result还是-1,这是为什么呢,不是使用了ref吗
            //有大侠能在这里详细解释下吗,最后从堆栈的角度来分析
                   
            Console.WriteLine(res);
         
        }
    }