• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#多线程的几种实现方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.最简单的多线程

using System;
using System.Threading;

namespace ThreadTest1
{
    public class SimpleThread
    {
        public void Run()
        {
            Thread t1 = new Thread(new ThreadStart(this.ThreadFunc));
            Thread t2 = new Thread(new ThreadStart(this.ThreadFunc));
            t1.Start();
            Thread.Sleep(1000);
            t2.Start();
        }

        private void ThreadFunc()
        {
            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine(i);
                Thread.Sleep(100);
            }
        }
    }
}

2.可以传参数的多线程

using System;
using System.Threading;

namespace ThreadTest1
{
    class ThreadWithPara
    {
        public void Run()
        {
            Thread t1 = new Thread(ThreadFunc);
            Thread t2 = new Thread(new ParameterizedThreadStart(ThreadFunc));
            t1.Start("t1");
            Thread.Sleep(1000);
            t2.Start("t2");
        }

        private void ThreadFunc(object obj)
        {
            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine(i + obj.ToString());
                Thread.Sleep(100);
            }
        }
    }
}

3.自定义类的多线程

using System;
using System.Threading;

namespace ThreadTest1
{
    class MyThreadClass
    {
        private string data;

        public MyThreadClass(string data)
        {
            this.data = data;
        }

        public void ThreadMain()
        {
            Console.WriteLine("Running in a thread,data: {0}", data);
        }
    }

    class MainClass
    {
        public void Run()
        {
            MyThreadClass mtc = new MyThreadClass("thread1");
            Thread thread = new Thread(mtc.ThreadMain);
            thread.Start();
        }
    }
}

4. 匿名方法实现的多线程

using System;
using System.Threading;

namespace ThreadTest1
{
    public class AnonymousThread
    {
        public void Run()
        {
            Thread t1 = new Thread(() => ThreadFunc("thread-1"));
            t1.Start();
        }

        private void ThreadFunc(string obj)
        {
            for (int i = 0; i < 100; i++)
            {
                Console.WriteLine(i + obj.ToString());
                Thread.Sleep(100);
            }
        }
    }
}

5.参考

C# 给多线程传参的三种方式


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
实现用VB.Net/(C#)开发K/3BOS插件的真正可行方法发布时间:2022-07-18
下一篇:
C#将string转换为十六进制发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap