BetterStreams 1.0

Licenza: Prova gratuita ‎Dimensioni del file: 618.50 KB
‎Valutazione utenti: 3.0/5 - ‎1 ‎Voti

Circa BetterStreams

Libreria .Net costituita da tre classi per l'I/O asincrono semplificato (AsyncStream), utilizzando flussi di dati alternativi (AlternateStreams) e un flusso efficiente che sbircia e cerca (BetterBufferedStream). BetterStreams può facilmente migliorare le prestazioni di applicazioni nuove o esistenti, a volte in modo drastico, con un numero di modifiche a riga singola al codice. AsyncStream esegue il wrapping di un flusso esistente e fornisce I/O asincrono tramite i metodi standard Read(), ReadByte(), Write() e WriteByte(); se chiamati direttamente sul flusso di cui è stato eseguito il wrappe, questi richiederebbero l'attesa dell'I/O nella periferica sottostante (ad esempio un disco), ma AsyncStream riempie o scarica automaticamente il buffer interno da o verso il flusso di cui è stato eseguito il wrappe utilizzando un thread in background e non si bloccherà mai finché nel buffer sono disponibili byte sufficienti. Anche se la logica dell'applicazione è già costruita intorno all'I/O sincrono, renderlo asincrono in genere non richiede altro che eseguire il wrapping del flusso originale in un AsyncStream. AsyncStreams fornisce anche un'elegante gestione delle eccezioni, proprietà per ottimizzare le prestazioni e il comportamento quando lo si desidera e, come BetterBufferedStreams, una ricerca efficiente. AlternateStreams consente di leggere, scrivere, eliminare, creare ed elencare flussi di dati alternativi (ADS) in un file NTFS. In NTFS ogni file ha un flusso senza nome "main" (questo è quello manipolato dalle classi di I/O dei file di Framework) e zero o più flussi denominati "alternate"; Ad esempio, Internet Explorer utilizza un flusso alternativo denominato "Zone.Identifier" per registrare da quale area di protezione proviene un file scaricato. Oltre a memorizzare comodamente i metadati, possono anche essere utilizzati per creare "archiviazione composta" per i dati dell'applicazione; invece di serializzare in sequenza dieci oggetti nel flusso fie "main" (richiedendo che l'intero file venga riscritto se ne cambia solo l'ultimo oggetto), ogni oggetto può essere serializzato nel proprio flusso alternativo modificabile singolarmente.