BetterStreams 1.0

Licença: Avaliação gratuita ‎Tamanho do arquivo: 618.50 KB
‎Classificação dos usuários: 3.0/5 - ‎1 ‎Votos

Sobre BetterStreams

A biblioteca .Net consiste em três classes para I/O assíncrona simplificada (AsyncStream), usando fluxos de dados alternativos (AlternateStreams) e espiada e busca eficiente de fluxo (BetterBufferedStream). BetterStreams podem facilmente melhorar o desempenho de aplicativos novos ou existentes, às vezes dramaticamente, com apenas uma mudança de linha única no código. O AsyncStream envolve um fluxo existente e fornece I/O assíncronso através dos métodos padrão Read(), ReadByte(), Write() e WriteByte(). se chamado no fluxo embrulhado diretamente estes exigiriam esperar por I/O para o dispositivo subjacente (como um disco), mas o AsyncStream assíncrose e automaticamente preenche ou libera seu buffer interno de ou para o fluxo embrulhado usando um segmento de fundo e nunca bloqueará enquanto bytes suficientes estiverem disponíveis no buffer. Mesmo que sua lógica de aplicativo já esteja construída em torno de I/O síncrocro, torná-lo assíncroto normalmente não requer nada mais do que embrulhar o fluxo original em um AsyncStream. AsyncStreams também fornecem manuseio elegante de exceção, propriedades para ajuste fino desempenho e comportamento quando desejado, e, como BetterBufferedStreams, busca eficiente. O AlternateStreams permite que você leia, escreva, exclua e liste fluxos de dados alternativos (ADS) em um arquivo NTFS. De acordo com o NTFS, cada arquivo tem um fluxo "main" sem nome (este é o que as classes de I/O do arquivo do Framework manipulam) bem como zero ou mais "alternativo" streams nomeados; por exemplo, o Internet Explorer usa um fluxo alternativo chamado "Zone.Identifier" para registrar de qual zona de segurança veio um arquivo baixado. Além de armazenar metadados convenientemente, eles também podem ser usados para criar "armazenamento composto" para dados de aplicativos; em vez de, por exemplo, serializar sequencialmente dez objetos para o "main" fie stream (exigindo que todo o arquivo seja reescrito se houver, mas o último objeto muda) cada objeto pode ser serializado para seu próprio fluxo alternativo, individualmente modificável.