后一篇(对比):c#-线程实验-用状态+非循环控制线程
1.说明
//这里不断的循环,知道等来其他线程的运算结果
while (true) {
if (fun1_end && fun2_end) {
break;
}
}
2.代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApp4
{
class Program
{
static int num=0;
static bool fun1_end = false;
static bool fun2_end = false;
static void Main(string[] args)
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("hello word\n");
var thread1 = new Thread(fun1);
var thread2 = new Thread(fun2);
thread1.Start();
thread2.Start();
//Thread.Sleep(1000 * 3 * 10);
while (true) {
if (fun1_end && fun2_end) {
break;
}
}
Console.WriteLine(num);
Console.ReadKey();
}
static void fun1() {
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
for (int i=0;i<10;i++) {
Thread.Sleep(1000);
num++;
}
fun1_end = true;
}
static void fun2()
{
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
for (int i = 0; i < 10; i++){
Thread.Sleep(1000);
num++;
}
fun2_end = true;
}
}
}
3.运行效果