做excel的网站,网站菜单分类怎么做的,网站外链建设有利于增加网站收录,资金盘网站开发公司哪里好需求#xff1a;有时为了能分时的调用多个任务运行#xff0c;因此需要考虑多线程的编程方式
操作步骤如下#xff1a;
1#xff09;创建线程并开启线程
Thread thread0 new Thread(() DoWork0(0));
thread0.Start();
2#xff09;编写线程函数 static void Do…需求有时为了能分时的调用多个任务运行因此需要考虑多线程的编程方式
操作步骤如下
1创建线程并开启线程
Thread thread0 new Thread(() DoWork0(0));
thread0.Start();
2编写线程函数 static void DoWork0(int threadNumber)
{while (true){lock (_lock){//停止线程xx}Thread.Sleep(4000); // 模拟工作}Console.WriteLine($线程 {threadNumber} 完成工作。);} 3等待线程结束 thread0.Join();
有时可以在线程函数中编写死循环但是需要考虑怎样退出。
当在该线程函数内执行sleep函数时线程将会切换到下一个线程运行。
4创建线程1
Thread thread1 new Thread(() DoWork1(0));
thread1.Start();
5线程1的函数 static void DoWork1(int threadNumber)
{while (true){lock (_lock){//停止线程xx}Thread.Sleep(4000); // 模拟工作}Console.WriteLine($线程 {threadNumber} 完成工作。);}
为了能够终止线程运行。
可以采用共享变量控制线程的退出操作
也即是将上述的线程函数的while(true)函数更改为while (!_shouldStop)。
然后定义一个全局变量
pubulic static volatile bool _shouldStop; 线程停止函数为
public void RequestStop()
{_shouldStop true;
}
为了保证线程函数运行时不会被其它线程干扰可以加入线程锁例如线程函数的所加的lock函数
public static readonly object _lock new object(); lock (_lock){//停止线程xx
}