C# 线程完成后如何更新主{}?
出于纯粹的线程学习目的,我尝试创建一个模拟吃角子老虎机 3个卷轴,由3条独立的线组成。他们随机等待一段时间,然后得出一个介于1和9之间的随机数 不过,到目前为止,我已经成功地做到了这一点,如何正确地让main{}知道所有3个卷都“完成”了,这样就可以运行CheckJackpot(),然后重新启动游戏(线程)以重新开始? 我尝试在卷轴中设置一个bool“isFinished”,并让main在一段时间内检查它(true),但这会完全占用我的cpu。通过在循环中添加一个睡眠计时器,我更进一步了,尽管我可以看出这是多么草率的编码,即使它在我的小实验中可以工作。然后,每个卷轴也需要一段时间(true)来检查isFinished是否返回false以重新启动游戏 我已经了解了锁语句,但是我不认为这是我想要实现的正确解决方案。我有一种感觉,我需要学习有关“事件”的知识,尽管这可能是我的头脑中的一个问题,因为这个话题还没有在课堂上提到过。解决这一困境的正确方法是什么?C# 线程完成后如何更新主{}?,c#,.net,multithreading,C#,.net,Multithreading,出于纯粹的线程学习目的,我尝试创建一个模拟吃角子老虎机 3个卷轴,由3条独立的线组成。他们随机等待一段时间,然后得出一个介于1和9之间的随机数 不过,到目前为止,我已经成功地做到了这一点,如何正确地让main{}知道所有3个卷都“完成”了,这样就可以运行CheckJackpot(),然后重新启动游戏(线程)以重新开始? 我尝试在卷轴中设置一个bool“isFinished”,并让main在一段时间内检查它(true),但这会完全占用我的cpu。通过在循环中添加一个睡眠计时器,我更进一步了,尽管我
- 不要使用线程。使用任务-它们本质上是相同的,但是。。。。它们具有更好的API,更适合于非永久性元件。当运行时间超过一秒钟的某一部分时,请确保将它们标记为长时间运行
- 任务-您可以等待多个任务的完成。即,将创建的所有任务(3)保存在一个数组中,等待它们完成。完成了
- 简单:线程。每个循环睡眠50毫秒。把CPU的速度降下来
- 真正使用时无联锁和计数器。从3降到0
- 仔细阅读信号
- 不要使用线程。使用任务-它们本质上是相同的,但是。。。。它们具有更好的API,更适合于非永久性元件。当运行时间超过一秒钟的某一部分时,请确保将它们标记为长时间运行
- 任务-您可以等待多个任务的完成。即,将创建的所有任务(3)保存在一个数组中,等待它们完成。完成了
- 简单:线程。每个循环睡眠50毫秒。把CPU的速度降下来
- 真正使用时无联锁和计数器。从3降到0
- 仔细阅读信号