异步执行两个函数,各自执行自己的。

chenyunlirui01 2022-06-30 15:37:53

需求是BC各自执行各自,无需等待对方完成,C需要每隔固定时间执行一次。  C执行的时候当前a的值 历史 值不 需要 。谢谢!

using System;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            
            while (true)
            {
                for (int i = 0; i < 100; i++)
                {
                    A(i.ToString());
                }
            }
        }
        public static void A(string a)
        {
            B(a);
            C(a); //需求BC各自执行各自,无需等待对方完成,C需要每隔固定时间执行一次      
        }
        public static void B(string a)
        {
            Console.WriteLine(a);
            System.Threading.Thread.Sleep(1000);
        }
        public static void C(string a)
        {
            Console.WriteLine(a);
            System.Threading.Thread.Sleep(3000);
        }
    }
}

 

...全文
389 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyunlirui01 2022-07-01
  • 打赏
  • 举报
回复

C函数是3s执行一次,但不是当前a的值, 是0、1、2、3顺序执行的。
B函数我要求是1s执行一次,但实际一秒钟执行了多次。

chenyunlirui01 2022-07-01
  • 打赏
  • 举报
回复

@正怒月神 我之前尝试了,没成功,不是我想要的结果。

img


```c#
using System;

namespace ConsoleApp1
{
    internal class asfssss1234
    {
        static void Main(string[] args)
        {
            
            while (true)
            {
                for (int i = 0; i < 100; i++)
                {
                    A(i.ToString());
                }
            }
        }
        public static void A(string a)
        {
            System.Timers.Timer timer = new System.Timers.Timer();
            timer.Enabled = true;
            timer.Interval = 1000; 
            timer.AutoReset = true;
            timer.Start();
            timer.Elapsed += new System.Timers.ElapsedEventHandler(B);
            C(a); //需求BC各自执行各自,无需等待对方完成,C需要每隔固定时间执行一次      
        }
        public static void B(object sender, System.Timers.ElapsedEventArgs e)
        {
            Console.WriteLine(DateTime.Now.Second.ToString() + ","+"我是B");
        }
        public static void C(string a)
        {
            Console.WriteLine(DateTime.Now.Second.ToString() + ","+a);
            System.Threading.Thread.Sleep(3000);
        }
    }
}

```

正怒月神 版主 2022-07-01
  • 打赏
  • 举报
回复

定时器,Timer去看一下

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧