Like GuyFawkes, Büyük miktarda veri depolamak için MemoryStream'i kullanmak istiyorum, ancak 'bellekte' özel durumlarıyla karşılaşmaya devam ediyorum.
TomTom'un cevabı, yapmak istediğim şeydir - bitişik bir blok gerektirmeyen bir uygulamayı kullanmak - ama zaten ücretsiz bir uygulama olup olmadığını merak etmekteyim.Bitişik bellek kullanmayan açık kaynaklı bir MemoryStream uygulaması var mı?
Büyük akışlarla çalışabilecek MemoryStream uygulamasının iyi ve ücretsiz bir şekilde yeniden uygulanmasını bilen var mı?
DÜZENLEME:
MemoryMappedFile çözümü çok ilginç ve ben Henk diyor ancak olarak, bu MemoryStreambaytlık hedefliyor soyutlama çok uzak cızırtı, diğer projeler için hatırlayarak olacaktır. Özellikle, bilinen bir kapasitenin gerekliliği.
Yerine koyma işleminin yapacağı veriler, bazı durumlarda çok büyük olacaktır, ancak diğerleri nispeten küçüktür (ve çok geç olana kadar ne olacağını bilmiyoruz;)); dahası, sınıfın birçok örneği aynı zamanda var olacaktır. Sonuçta, MemoryMappedFiles kullanmak için gerekli olan (her biri için uygun bir boyut belirlemek için), TomTom'un çözümününkiyle eşdeğer olacaktır.
StringBuilder de benzer bir sorun halatlarını kullanmak uygulanmasını değiştirerek .NET 4'te giderilmiştir. Googling "memorystream ip" sadece bir ucunda olan programcıların hitlerini üretir. 64 bit işletim sistemi, yüz dolarlık bir çözümdür. –
Tamam, ben (bar ve Eric benim ihtiyaç duyduğum değil ama ilginç) bir 'hayır' olarak cevaplar bar ve ben kendim uyguladık. Onun özellikle karmaşık değil ama birisi en iyi yeri önerebilirse onu yüklerim? – sebf
@HansPassant, halatlar ilginç bir okuma, Teşekkürler (Googling "memorystream ip" tam olarak ilham verici değildir!) Benim projemde sadece yüzlerce megabaytlık sırayla akışa ihtiyacım olsa da, benim uygulamada basit bir liste yeterli. – sebf