コード例 #1
0
 public void Enqueue(FileChangeEvent evt)
 {
     lock (intersection)
     {
         if (evt.ChangeType == FileChangeType.Renamed && events.ContainsKey(evt.OldFullPath))
         {
             events.Remove(evt.OldFullPath);
         }
         if (!events.ContainsKey(evt.FullPath))
         {
             events[evt.FullPath] = new List <FileChangeEvent>();
         }
         if (events[evt.FullPath].LastOrDefault() != evt)
         {
             events[evt.FullPath].Add(evt);
         }
     }
 }
コード例 #2
0
ファイル: Pipeline.cs プロジェクト: mattolenik/AutoMAT
        void DoConversions()
        {
            while (running)
            {
                FileChangeEvent evt = queue.Dequeue();
                if (evt != null)
                {
                    switch (evt.ChangeType)
                    {
                    case FileChangeType.CreatedOrUpdated:
                        UpdateMatAsync(evt.FullPath, evt.Source.OutputDirectory, evt.Source.Options);
                        break;

                    case FileChangeType.Renamed:
                        RenameMat(new FileInfo(evt.OldFullPath), new FileInfo(evt.FullPath), evt.Source.OutputDirectory);
                        break;
                    }
                }
                else
                {
                    Thread.Sleep(1000);
                }
            }
        }