这个就是简单写一下C#或WPF种使用线程得基础用法
线程就是让我们在处理复杂业务得时候 一些耗时得业务能同时进行 来减少时间上得损耗 是一个很好 也必备得技能
先说Thread 后说Task
1)Thread
举栗子
创建一个控制台程序
新建类ThreadConvert
这个类 创建了三个线程 th03演示了带参 和返回值
class ThreadConvert
{
int count03 = 0;
public void Start()
{
Thread th01 = new Thread(Thread01);
th01.Start();
Thread th02 = new Thread(Thread02);
th02.Start();
Thread th03 = new Thread(() => { count03=Thread03(500); });
th03.Start();
}
public void Thread01()
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine("Thread01 " + i);
}
}
public void Thread02()
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine("Thread02 " + i);
}
}
public int Thread03( int count)
{
int _count = 0;
for (int i = 0; i < count; i++)
{
_count++;
Console.WriteLine("Thread03 " + i);
}
return _count;
}
}
public static void Main()
{
ThreadConvert th = new ThreadConvert();
th.Start();
}

结果 如图所示 在代码执行的时候 输出数据是穿插的进行输出 这就达到了 同步执行
2)线程Join();
说一下如何控制线程
这里修改了Start的代码 这行代码的意思是th01线程与th03同时输出 当th03输出完毕时打印出Count03的数据 在执行th02
public void Start()
{
Thread th01 = new Thread(Thread01);
th01.Start();
Thread th03 = new Thread(() => { count03=Thread03(500); });
th03.Start();
//执行完才执行下一行代码
th03.Join();
Console.WriteLine("count03 " + count03);
Thread th02 = new Thread(Thread02);
th02.Start();
}
结果

结果出来后 看一下 和预想的一样
3)控制线程暂停与继续
这里我要使用ManualResetEvent
创建ManualResetEventDemo类
这里代码功能时输入3秒执行
class ManualResetEventDemo
{
ManualResetEvent Mr = new ManualResetEvent(false);
public ManualResetEventDemo()
{
Thread th = new Thread(Thread01);
th.Start();
// Start();
}
public void Start()
{
//开始继续
Mr.Set();
}
public void Stop()
{
//暂停
Mr.Reset();
}
public void Thread01()
{
int _count = 0;
while (true)
{
// Mr.WaitOne(); 是用来检测 如果 Set()触发时在才执行下面的代码
Mr.WaitOne();
_count++;
Console.WriteLine("i得值 " + _count);
Thread.Sleep(3000);
}
}
}
public static void Main()
{
ManualResetEventDemo mr = new ManualResetEventDemo();
Console.WriteLine("输入 start:继续 输入stop 暂停");
while (true)
{
string read = Console.ReadLine();
if (read.Equals("start"))
{ mr.Start(); }
else if (read.Equals("stop"))
{ mr.Stop(); }
};
Console.ReadKey();
}
运行结果

OK 关于Thread基本用法就这些
快过年了 说点题外话 因为最近身体也感觉问题越来越多 打算买重疾险 真是看了都快抑郁了 贵的一年一万 30年 都交出压力了
最后买了便宜的 但是后续保障也不知道怎么样
真是活得挺累的 希望大家注意身体 打工人也要好好的活着!
祝君健康

153

被折叠的 条评论
为什么被折叠?



