首页 > 学院 > 开发设计 > 正文

线程系列04,传递数据给线程,线程命名,线程异常处理,线程池

2019-11-17 02:52:40
字体:
来源:转载
供稿:网友

线程系列04,传递数据给线程,线程命名,线程异常处理,线程池

本篇体验:如何传递数据给线程,如何给线程命名,线程的异常处理,线程池。实在是太基础的部分。

□ 传递数据给线程

※ 使用Lambda表达式

    class PRogram
    {
        static void Main(string[] args)
        {
            Thread t = new Thread(() => Say("hello", "world"));
            t.Start();
        }
        static void Say(string msg, string msg1)
        {
            Console.WriteLine("第一个参数值是:"+msg);
            Console.WriteLine("第二个参数值是:" + msg1);
        }
    }

11

使用Lambda表达式需要注意的一个问题。

    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                new Thread(() => Console.WriteLine("当前线程#" + Thread.CurrentThread.ManagedThreadId + "输出的值是:" + i)).Start();
            }
        }
    }

12

说明,有些线程共享了局部变量i。如何解决线程共享栈变量的问题呢?只需要在每次遍历循环的时候,把i赋值给一个临时变量,再打印临时变量,不直接打印栈变量i。

    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                int temp = i;
                new Thread(() => Console.WriteLine("当前线程#" + Thread.CurrentThread.ManagedThreadId + "输出的值是:" + temp)).Start();
            }
        }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表