多线程并发,同时执行一个表,避免数据缺失


 FileSystemWatcher fileSystemWatcher1 = new FileSystemWatcher();//文件监控

 public static object locker = new object();

             ThreadPool.SetMinThreads(1, 1);//设置线程最小数量
   
            ThreadPool.SetMaxThreads(3, 1000);//设置线程最大数量和工作数量

 fileSystemWatcher1.Path = System.Configuration.ConfigurationManager.AppSettings["filePath"].ToString();//获取文件路径
            fileSystemWatcher1.Filter = "*.EFA";//设置获取文件的后缀名
            fileSystemWatcher1.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;
            fileSystemWatcher1.Changed += new FileSystemEventHandler(fileSystemWatcher1_Changed);  //当文件发生改变时执行    fileSystemWatcher1_Changed方法     
            fileSystemWatcher1.EnableRaisingEvents = true;



 private void fileSystemWatcher1_Changed(object sender, FileSystemEventArgs e)
        {
            try
            {



                if (!listpath.Contains(e.FullPath))
                {


                    
                    
                    
                    
              
                        ThreadPool.QueueUserWorkItem(  Work, e.FullPath);将方法排入线程池中
                    
                   
                  
                }
               


            }
            catch { }
        }


    public void Work(object path)
        {
            try
            {
              
              Thread.Sleep(5000);
            

                    lock (locker)//添加互斥锁,保证数据完整性
                    {



                      对文件进行编辑和修改
                      







                       
                                


                            
                        }
                  
                    
                    
                
                
              
            }
            catch { }
        }


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值