没有合适的资源?快使用搜索试试~ 我知道了~
C# 多线程详细讲解
需积分: 5 1 下载量 88 浏览量
2021-01-15
20:00:32
上传
评论
收藏 8KB TXT 举报
温馨提示
试读
8页
C# 多线程详细讲解
资源推荐
资源详情
资源评论
多线程(7)_Task和Thread有参无参,有、无返回值,的28种调用方式汇总——附C#源码
我总结了Thread和Task的几十种启动线程的方法,包含有参数调用、无参数调用、有返回值调用、无返回值调用。挑一挑,必有一款适合你。
Github源码地址:
Thread的调用方法: https://github.com/yangwohenmai/TEST/tree/master/ThreadStart
Task的调用方法: https://github.com/yangwohenmai/TEST/tree/master/TaskStart
1.Thread调用的五种方式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ThreadStartTest
{
class Program
{
/// 无参
static void aa()
{
Console.WriteLine("我没有参数");
//for (int a = 0; a < 100; a++)
//{
// Thread.Sleep(1000);
// Console.WriteLine(a);
//}
我总结了Thread和Task的几十种启动线程的方法,包含有参数调用、无参数调用、有返回值调用、无返回值调用。挑一挑,必有一款适合你。
Github源码地址:
Thread的调用方法: https://github.com/yangwohenmai/TEST/tree/master/ThreadStart
Task的调用方法: https://github.com/yangwohenmai/TEST/tree/master/TaskStart
1.Thread调用的五种方式
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ThreadStartTest
{
class Program
{
/// 无参
static void aa()
{
Console.WriteLine("我没有参数");
//for (int a = 0; a < 100; a++)
//{
// Thread.Sleep(1000);
// Console.WriteLine(a);
//}
}
/// 有参
/// <param name="i"></param>
static void SemaphoreTest(int i)
{
Console.WriteLine("线程" + i + "进入准备111111:" + DateTime.Now.ToString());
//semLim.Wait();
Console.WriteLine("线程" + i + "开始执行22222222:" + DateTime.Now.ToString());
Thread.Sleep((2 + 2 * i) * 1000);
Console.WriteLine("线程" + Thread.CurrentThread.ManagedThreadId.ToString() + "执行完毕33333333:" + DateTime.Now.ToString());
//semLim.Release();
}
//static SemaphoreSlim semLim = new SemaphoreSlim(4); //3表示最多只能有三个线程同时访问
public static void Main(string[] args)
{
//1.无参数线程
for (int i = 0; i < 10; i++)
{
new Thread(aa).Start();
//Thread t = new Thread(aa);
//t.start();
}
//2.无参数线程
for (int i = 0; i < 10; i++)
{
new Thread(() => aa()).Start();
/// 有参
/// <param name="i"></param>
static void SemaphoreTest(int i)
{
Console.WriteLine("线程" + i + "进入准备111111:" + DateTime.Now.ToString());
//semLim.Wait();
Console.WriteLine("线程" + i + "开始执行22222222:" + DateTime.Now.ToString());
Thread.Sleep((2 + 2 * i) * 1000);
Console.WriteLine("线程" + Thread.CurrentThread.ManagedThreadId.ToString() + "执行完毕33333333:" + DateTime.Now.ToString());
//semLim.Release();
}
//static SemaphoreSlim semLim = new SemaphoreSlim(4); //3表示最多只能有三个线程同时访问
public static void Main(string[] args)
{
//1.无参数线程
for (int i = 0; i < 10; i++)
{
new Thread(aa).Start();
//Thread t = new Thread(aa);
//t.start();
}
//2.无参数线程
for (int i = 0; i < 10; i++)
{
new Thread(() => aa()).Start();
剩余7页未读,继续阅读
资源评论
clliby
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功