Здравствуйте, Аноним, Вы писали:
public virtual int Read([In, Out] char[] buffer, int index, int count)
{
if (buffer == null)
{
throw new ArgumentNullException("buffer", Environment.GetResourceString("ArgumentNull_Buffer"));
}
if (index < 0)
{
throw new ArgumentOutOfRangeException("index", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
}
if (count < 0)
{
throw new ArgumentOutOfRangeException("count", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum"));
}
if ((buffer.Length - index) < count)
{
throw new ArgumentException(Environment.GetResourceString("Argument_InvalidOffLen"));
}
int num = 0;
do
{
int num2 = this.Read();
if (num2 == -1)
{
return num;
}
buffer[index + num++] = (char) num2;
}
while (num < count);
return num;
}
public virtual int ReadBlock([In, Out] char[] buffer, int index, int count)
{
int num;
int num2 = 0;
do
{
num2 += num = this.Read(buffer, index + num2, count - num2);
}
while ((num > 0) && (num2 < count));
return num2;
}
Здравствуйте, heeepi, Вы писали:
А>>Кто может объяснить разницу между методами Read и ReadBlock? В MSDN для ReadBlock говорится: "This is a blocking version of Read". Но Read тоже вроде не асинхронный метод.
H>Read предназначен для чтения одного значения, а ReadBlock для чтения блока данных.
Вот этот метод тоже читает набор символов:
public virtual int Read (
[InAttribute] [OutAttribute] char[] buffer,
int index,
int count
)