protected override EdfPlusAnnotationDataBlock GetBlock(int index)
 {
     lock (BlocksList)
     {
         EdfPlusAnnotationDataBlock result = base.GetBlock(index);
         if (result == null)
         {
             _getBlockBusy = true;
             try
             {
                 if (DoReadBlockDataFromFile(index))
                 {
                     result = base.GetBlock(index);
                 }
             }
             finally
             {
                 _getBlockBusy = false;
             }
         }
         return(result);
     }
 }
Esempio n. 2
0
 public bool AddBlock(int blockNr, double onset)
 {
     Debug.Assert(blockNr >= 0, TALConsts.InvalidBlockIndex);
     Debug.Assert(double.IsNaN(onset) || (onset >= 0), TALConsts.InvalidBlockOnset);
     _lastError = TalError.None;
     DoSetBlocksListCapacity(blockNr);
     while (blockNr >= BlocksList.Count)
     {
         BlocksList.Add(null);
     }
     if (BlocksList[blockNr] != null)
     {
         Block(blockNr).DataRecOnset = onset;
     }
     else
     {
         EdfPlusAnnotationDataBlock newBlock = new EdfPlusAnnotationDataBlock(this, blockNr, onset)
         {
             Modified = true
         };
         BlocksList[blockNr] = newBlock;
     }
     return(Block(blockNr) != null);
 }