-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!p
ostnews.google.com!x25g2000yqj.googlegroups.com!not-for-mail
From: Selvin <p...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Streamin c#
Date: Wed, 1 Sep 2010 08:31:09 -0700 (PDT)
Organization: http://groups.google.com
Lines: 66
Message-ID: <0...@x...googlegroups.com>
References: <i53218$sgk$1@news.onet.pl>
NNTP-Posting-Host: 217.97.163.80
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
X-Trace: posting.google.com 1283355069 8968 127.0.0.1 (1 Sep 2010 15:31:09 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Wed, 1 Sep 2010 15:31:09 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: x25g2000yqj.googlegroups.com; posting-host=217.97.163.80;
posting-account=R8EpSwoAAADeCYcG96LM5BAc_tdIdesQ
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/533.4
(KHTML, like Gecko) Chrome/5.0.375.127 Safari/533.4,gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:186756
[ ukryj nagłówki ]po co stream :) kolejka nie moze byc?
jak chcesz to mozesz to odziedziczyc po System.IO.Stream
public class MyBuffer
{
Queue<MemoryChunk> buffers = new Queue<MemoryChunk>();
object readlock = new object();
public uint AvailableDataLength { get; private set; }
public void Write(byte[] data, int offset, int count)
{
var mem = AllocateMemoryChunk(count);
Buffer.BlockCopy(data, offset, mem.Buffer, 0, count);
lock (readlock)
{
buffers.Enqueue(mem);
AvailableDataLength += count;
}
}
public int Read(byte[] buffer, int offset, int count)
{
int toread = 0;
lock (readlock)
{
if (buffers.Count != 0)
{
var buf = buffers.Peek();
toread = buf.Buffer.Length - buf.Offset;
int off = buf.Offset;
if (count >= toread)
buffers.Dequeue();
else
{
toread = count;
buf.Offset += toread;
}
Buffer.BlockCopy(buf.Buffer, off, buffer, offset,
toread);
AvailableDataLength -= toread;
}
return toread;
}
}
private MemoryChunk AllocateMemoryChunk(int newSize)
{
//zawsze mozna zrobic z tego pool zeby nie tworzyc nowych
MemoryChunk chunk = new MemoryChunk(newSize);
return chunk;
}
private class MemoryChunk
{
internal byte[] Buffer;
internal int Offset = 0;
internal MemoryChunk(uint bufferSize)
{
Buffer = new byte[bufferSize];
Offset = 0;
}
}
}
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-22 Złomnik ty pisowska SZMATO! ;-)
- 2026-01-22 PID - jeszcze raz
- 2026-01-22 konkret24.tvn24.pl "gwarantuje": za SAMO wylanie gnojówki pod domem tusk-ministra aresztu nie będzie! ;-)
- 2026-01-22 Prawo na wesoło: nakaz rozbiórki "dwóch przyczep samochodowych" jako budynku ;-)
- 2026-01-22 Airtagi
- 2026-01-22 Warszawa => Full Stack Developer (Go/React) <=
- 2026-01-22 Warszawa => Senior Account Manager <=
- 2026-01-21 Nissan Leaf II 40kWh - degradacja baterii, SOH, uszkodzona bateria
- 2026-01-21 Fwd: zarzuty dla kulsonów
- 2026-01-21 Koniec Eldorado :)
- 2026-01-21 Warszawa => Senior Account Manager <=
- 2026-01-21 Gdańsk => Frontend Developer React <=
- 2026-01-21 Zakazy dla małolatów
- 2026-01-20 Majo przesrane :)
- 2026-01-20 Kiedy zajmiemy Bornholm?




Fakturzystka, fakturzysta