c# 监控信号量的循环问题

每秒监控一个bool量 当bool量为true且i=1时向数据库插入一条数据 然后使int i=0 停止插入
等bool量为false时 将i复位 变为1

     while (!Bool1)
        {
            reset();
        }
        while (Bool1&&i==1)
        {
            set();
            GetResult();
        }
      
        void GetResult()
        {                
            conn conn = new conn();
            string sql = $"INSERT INTO material(TIME_ENTRANCE_HEAD_RM) VALUES(SYSDATE)";
            conn.Execute(sql);
            conn.connClose();              
        }

        int set()
        {
            i = 0;
            return i;
        }

        int reset()
        {
            i = 1;
            return i;
        }

现在bool量由ture变为false时候 i会复位成1 但bool量由false变为ture的时候 i不会变成0 导致每秒向数据库插入一条数据

你这代码不全啊,不好分析啊
两个while循环下面,怎么还有函数定义,语法都不通过
逻辑不复杂,最好代码全点

基本上属于那个园子里走火入魔的玩法

基本上我来猜猜看你想干嘛,你想你有个指不定啥时候需要你访问的任务(因为你不知道他啥时候来,所以就说要1秒去看看对吧)
然后他也许一次来了好几个,你觉着不能让他批量了,你想让他一次执行一个对吧

如果你同样上述描述,请确认任务需求,我们来写代码。
如果你不同意上述描述,请用中文直接描述,你想要达到的功能需求是啥样的