İngilizce dilinde oku

Aracılığıyla paylaş


BufferedStream Sınıf

Tanım

Başka bir akışta okuma ve yazma işlemleri için arabelleğe alma katmanı ekler. Bu sınıf devralınamaz.

C#
public sealed class BufferedStream : System.IO.Stream
C#
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class BufferedStream : System.IO.Stream
Devralma
BufferedStream
Devralma
Öznitelikler

Örnekler

Aşağıdaki kod örnekleri, belirli G/Ç işlemlerinin performansını artırmak için NetworkStream sınıfı üzerinde BufferedStream sınıfının nasıl kullanılacağını gösterir. İstemciyi başlatmadan önce sunucuyu uzak bir bilgisayarda başlatın. İstemciyi başlatırken uzak bilgisayar adını komut satırı bağımsız değişkeni olarak belirtin. Performans üzerindeki etkisini görüntülemek için dataArraySize ve streamBufferSize sabitlerini çeşitlendirebilirsiniz.

İlk örnek, istemcide çalışan kodu, ikinci örnekte ise sunucuda çalışan kodu gösterir.

Örnek 1: İstemci üzerinde çalışan kod

C#
using System;
using System.IO;
using System.Globalization;
using System.Net;
using System.Net.Sockets;

public class Client
{
    const int dataArraySize    =   100;
    const int streamBufferSize =  1000;
    const int numberOfLoops    = 10000;

    static void Main(string[] args)
    {
        // Check that an argument was specified when the
        // program was invoked.
        if(args.Length == 0)
        {
            Console.WriteLine("Error: The name of the host computer" +
                " must be specified when the program is invoked.");
            return;
        }

        string remoteName = args[0];

        // Create the underlying socket and connect to the server.
        Socket clientSocket = new Socket(AddressFamily.InterNetwork,
            SocketType.Stream, ProtocolType.Tcp);

        clientSocket.Connect(new IPEndPoint(
            Dns.Resolve(remoteName).AddressList[0], 1800));

        Console.WriteLine("Client is connected.\n");

        // Create a NetworkStream that owns clientSocket and
        // then create a BufferedStream on top of the NetworkStream.
        // Both streams are disposed when execution exits the
        // using statement.
        using(Stream
            netStream = new NetworkStream(clientSocket, true),
            bufStream =
                  new BufferedStream(netStream, streamBufferSize))
        {
            // Check whether the underlying stream supports seeking.
            Console.WriteLine("NetworkStream {0} seeking.\n",
                bufStream.CanSeek ? "supports" : "does not support");

            // Send and receive data.
            if(bufStream.CanWrite)
            {
                SendData(netStream, bufStream);
            }
            if(bufStream.CanRead)
            {
                ReceiveData(netStream, bufStream);
            }

            // When bufStream is closed, netStream is in turn
            // closed, which in turn shuts down the connection
            // and closes clientSocket.
            Console.WriteLine("\nShutting down the connection.");
            bufStream.Close();
        }
    }

    static void SendData(Stream netStream, Stream bufStream)
    {
        DateTime startTime;
        double networkTime, bufferedTime;

        // Create random data to send to the server.
        byte[] dataToSend = new byte[dataArraySize];
        new Random().NextBytes(dataToSend);

        // Send the data using the NetworkStream.
        Console.WriteLine("Sending data using NetworkStream.");
        startTime = DateTime.Now;
        for(int i = 0; i < numberOfLoops; i++)
        {
            netStream.Write(dataToSend, 0, dataToSend.Length);
        }
        networkTime = (DateTime.Now - startTime).TotalSeconds;
        Console.WriteLine("{0} bytes sent in {1} seconds.\n",
            numberOfLoops * dataToSend.Length,
            networkTime.ToString("F1"));

        // Send the data using the BufferedStream.
        Console.WriteLine("Sending data using BufferedStream.");
        startTime = DateTime.Now;
        for(int i = 0; i < numberOfLoops; i++)
        {
            bufStream.Write(dataToSend, 0, dataToSend.Length);
        }
        bufStream.Flush();
        bufferedTime = (DateTime.Now - startTime).TotalSeconds;
        Console.WriteLine("{0} bytes sent in {1} seconds.\n",
            numberOfLoops * dataToSend.Length,
            bufferedTime.ToString("F1"));

        // Print the ratio of write times.
        Console.WriteLine("Sending data using the buffered " +
            "network stream was {0} {1} than using the network " +
            "stream alone.\n",
            (networkTime/bufferedTime).ToString("P0"),
            bufferedTime < networkTime ? "faster" : "slower");
    }

    static void ReceiveData(Stream netStream, Stream bufStream)
    {
        DateTime startTime;
        double networkTime, bufferedTime = 0;
        int bytesReceived = 0;
        byte[] receivedData = new byte[dataArraySize];

        // Receive data using the NetworkStream.
        Console.WriteLine("Receiving data using NetworkStream.");
        startTime = DateTime.Now;
        while(bytesReceived < numberOfLoops * receivedData.Length)
        {
            bytesReceived += netStream.Read(
                receivedData, 0, receivedData.Length);
        }
        networkTime = (DateTime.Now - startTime).TotalSeconds;
        Console.WriteLine("{0} bytes received in {1} seconds.\n",
            bytesReceived.ToString(),
            networkTime.ToString("F1"));

        // Receive data using the BufferedStream.
        Console.WriteLine("Receiving data using BufferedStream.");
        bytesReceived = 0;
        startTime = DateTime.Now;

        int numBytesToRead = receivedData.Length;

        while (numBytesToRead > 0)
        {
            // Read may return anything from 0 to numBytesToRead.
            int n = bufStream.Read(receivedData,0, receivedData.Length);
            // The end of the file is reached.
            if (n == 0)
                break;
            bytesReceived += n;
            numBytesToRead -= n;
        }

        bufferedTime = (DateTime.Now - startTime).TotalSeconds;
        Console.WriteLine("{0} bytes received in {1} seconds.\n",
            bytesReceived.ToString(),
            bufferedTime.ToString("F1"));

        // Print the ratio of read times.
        Console.WriteLine("Receiving data using the buffered network" +
            " stream was {0} {1} than using the network stream alone.",
            (networkTime/bufferedTime).ToString("P0"),
            bufferedTime < networkTime ? "faster" : "slower");
    }
}

Örnek 2: Sunucu üzerinde çalışan kod

C#
using System;
using System.Net;
using System.Net.Sockets;

public class Server
{
    static void Main()
    {
        // This is a Windows Sockets 2 error code.
        const int WSAETIMEDOUT = 10060;

        Socket serverSocket;
        int bytesReceived, totalReceived = 0;
        byte[] receivedData = new byte[2000000];

        // Create random data to send to the client.
        byte[] dataToSend = new byte[2000000];
        new Random().NextBytes(dataToSend);

        IPAddress ipAddress =
            Dns.Resolve(Dns.GetHostName()).AddressList[0];

        IPEndPoint ipEndpoint = new IPEndPoint(ipAddress, 1800);

        // Create a socket and listen for incoming connections.
        using(Socket listenSocket = new Socket(
            AddressFamily.InterNetwork, SocketType.Stream,
            ProtocolType.Tcp))
        {
            listenSocket.Bind(ipEndpoint);
            listenSocket.Listen(1);

            // Accept a connection and create a socket to handle it.
            serverSocket = listenSocket.Accept();
            Console.WriteLine("Server is connected.\n");
        }

        try
        {
            // Send data to the client.
            Console.Write("Sending data ... ");
            int bytesSent = serverSocket.Send(
                dataToSend, 0, dataToSend.Length, SocketFlags.None);
            Console.WriteLine("{0} bytes sent.\n",
                bytesSent.ToString());

            // Set the timeout for receiving data to 2 seconds.
            serverSocket.SetSocketOption(SocketOptionLevel.Socket,
                SocketOptionName.ReceiveTimeout, 2000);

            // Receive data from the client.
            Console.Write("Receiving data ... ");
            try
            {
                do
                {
                    bytesReceived = serverSocket.Receive(receivedData,
                        0, receivedData.Length, SocketFlags.None);
                    totalReceived += bytesReceived;
                }
                while(bytesReceived != 0);
            }
            catch(SocketException e)
            {
                if(e.ErrorCode == WSAETIMEDOUT)
                {
                    // Data was not received within the given time.
                    // Assume that the transmission has ended.
                }
                else
                {
                    Console.WriteLine("{0}: {1}\n",
                        e.GetType().Name, e.Message);
                }
            }
            finally
            {
                Console.WriteLine("{0} bytes received.\n",
                    totalReceived.ToString());
            }
        }
        finally
        {
            serverSocket.Shutdown(SocketShutdown.Both);
            Console.WriteLine("Connection shut down.");
            serverSocket.Close();
        }
    }
}

Açıklamalar

Arabellek, verileri önbelleğe almak için kullanılan bellekteki bayt bloğudur ve böylece işletim sistemine yapılan çağrıların sayısını azaltır. Arabellekler okuma ve yazma performansını artırır. Arabellek okuma veya yazma için kullanılabilir, ancak her ikisi de aynı anda kullanılamaz. BufferedStream Read ve Write yöntemleri arabelleği otomatik olarak korur.

Önemli

Bu tür IDisposable arabirimini uygular. Türünü kullanmayı bitirdiğinizde, doğrudan veya dolaylı olarak atmalısınız. Türü doğrudan atmak için Dispose yöntemini bir try/catch bloğunda çağırın. Bunu dolaylı olarak atmak için using (C#'de) veya Using (Visual Basic'te) gibi bir dil yapısı kullanın. Daha fazla bilgi için IDisposable arabirimi konusunun "IDisposable Uygulayan Bir Nesne Kullanma" bölümüne bakın.

BufferedStream belirli akış türlerinin etrafında oluşturulabilir. Temel alınan veri kaynağına veya depoya bayt okuma ve yazma için uygulamalar sağlar. Diğer veri türlerini okumak ve yazmak için BinaryReader ve BinaryWriter kullanın. BufferedStream, arabelleğe ihtiyaç duyulmadığında arabelleğin girişi ve çıkışı yavaşlatmasını önlemek için tasarlanmıştır. İç arabellek boyutundan büyük boyutları her zaman okur ve yazarsanız, BufferedStream iç arabelleği ayırmayabilir bile. BufferedStream paylaşılan arabellekteki okuma ve yazma işlemleri de arabelleğe alınıyor. Neredeyse her zaman bir dizi okuma veya yazma işlemi yaptığınız varsayılır, ancak ikisi arasında nadiren geçiş yaparsınız.

Oluşturucular

BufferedStream(Stream)

varsayılan arabellek boyutu 4096 bayt olan BufferedStream sınıfının yeni bir örneğini başlatır.

BufferedStream(Stream, Int32)

Belirtilen arabellek boyutuyla BufferedStream sınıfının yeni bir örneğini başlatır.

Özellikler

BufferSize

Bu arabelleğe alınan akış için arabellek boyutunu bayt cinsinden alır.

CanRead

Geçerli akışın okumayı destekleyip desteklemediğini belirten bir değer alır.

CanSeek

Geçerli akışın aramayı destekleyip desteklemediğini belirten bir değer alır.

CanTimeout

Geçerli akışın zaman aşımına neden olup olmadığını belirleyen bir değer alır.

(Devralındığı yer: Stream)
CanWrite

Geçerli akışın yazmayı destekleyip desteklemediğini belirten bir değer alır.

Length

Akış uzunluğunu bayt cinsinden alır.

Position

Geçerli akış içindeki konumu alır.

ReadTimeout

Akışın zaman aşımına uğramadan önce ne kadar süreyle okumayı deneyeceğini belirleyen bir değeri milisaniye cinsinden alır veya ayarlar.

(Devralındığı yer: Stream)
UnderlyingStream

Bu arabelleğe alınan akış için temel Stream örneğini alır.

WriteTimeout

Akışın zaman aşımına uğramadan önce ne kadar süreyle yazmaya çalışacağını belirleyen bir değeri milisaniye cinsinden alır veya ayarlar.

(Devralındığı yer: Stream)

Yöntemler

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Zaman uyumsuz bir okuma işlemi başlatır. (Bunun yerine ReadAsync(Byte[], Int32, Int32, CancellationToken) kullanmayı düşünün.)

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Zaman uyumsuz bir okuma işlemi başlatır. (Bunun yerine ReadAsync(Byte[], Int32, Int32) kullanmayı düşünün.)

(Devralındığı yer: Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Zaman uyumsuz bir yazma işlemi başlatır. (Bunun yerine WriteAsync(Byte[], Int32, Int32, CancellationToken) kullanmayı düşünün.)

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Zaman uyumsuz bir yazma işlemi başlatır. (Bunun yerine WriteAsync(Byte[], Int32, Int32) kullanmayı düşünün.)

(Devralındığı yer: Stream)
Close()

Akışı kapatır ve geçerli arabelleğe alınan akışla ilişkili tüm kaynakları (özellikle yuvalar ve dosya tanıtıcıları gibi sistem kaynakları) serbest bırakır.

Close()

Geçerli akışı kapatır ve geçerli akışla ilişkili tüm kaynakları (yuvalar ve dosya tanıtıcıları gibi) serbest bırakır. Bu yöntemi çağırmak yerine akışın düzgün şekilde atıldığından emin olun.

(Devralındığı yer: Stream)
CopyTo(Stream)

Geçerli akıştan baytları okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyTo(Stream, Int32)

Geçerli arabelleğe alınan akıştan baytları okur ve başka bir akışa yazar.

CopyTo(Stream, Int32)

Geçerli akıştan baytları okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream)

Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, CancellationToken)

Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve belirtilen iptal belirtecini kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, Int32)

Geçerli akıştan gelen baytları zaman uyumsuz olarak okur ve belirtilen arabellek boyutunu kullanarak başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Geçerli arabelleğe alınan akıştan baytları zaman uyumsuz olarak okur ve belirtilen arabellek boyutu ve iptal belirtecini kullanarak başka bir akışa yazar.

CopyToAsync(Stream, Int32, CancellationToken)

Belirtilen arabellek boyutu ve iptal belirtecini kullanarak geçerli akıştan baytları zaman uyumsuz olarak okur ve başka bir akışa yazar. Her iki akış konumu da kopyalanan bayt sayısına göre gelişmiştir.

(Devralındığı yer: Stream)
CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
CreateWaitHandle()
Geçersiz.
Geçersiz.
Geçersiz.

bir WaitHandle nesnesi ayırır.

(Devralındığı yer: Stream)
Dispose()

Streamtarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Stream)
Dispose(Boolean)

Stream tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve isteğe bağlı olarak yönetilen kaynakları serbest bırakır.

(Devralındığı yer: Stream)
DisposeAsync()

Arabelleğe alınan akış tarafından kullanılan yönetilmeyen kaynakları zaman uyumsuz olarak serbest bırakır.

DisposeAsync()

Streamtarafından kullanılan yönetilmeyen kaynakları zaman uyumsuz olarak serbest bırakır.

(Devralındığı yer: Stream)
EndRead(IAsyncResult)

Bekleyen zaman uyumsuz okuma işleminin tamamlanmasını bekler. (Bunun yerine ReadAsync(Byte[], Int32, Int32, CancellationToken) kullanmayı düşünün.)

EndRead(IAsyncResult)

Bekleyen zaman uyumsuz okumanın tamamlanmasını bekler. (Bunun yerine ReadAsync(Byte[], Int32, Int32) kullanmayı düşünün.)

(Devralındığı yer: Stream)
EndWrite(IAsyncResult)

Zaman uyumsuz yazma işlemini sonlandırır ve G/Ç işlemi tamamlanana kadar engeller. (Bunun yerine WriteAsync(Byte[], Int32, Int32, CancellationToken) kullanmayı düşünün.)

EndWrite(IAsyncResult)

Zaman uyumsuz yazma işlemini sonlandırır. (Bunun yerine WriteAsync(Byte[], Int32, Int32) kullanmayı düşünün.)

(Devralındığı yer: Stream)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
Flush()

Bu akış için tüm arabellekleri temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur.

FlushAsync()

Bu akış için tüm arabellekleri zaman uyumsuz olarak temizler ve arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur.

(Devralındığı yer: Stream)
FlushAsync(CancellationToken)

Bu akış için tüm arabellekleri zaman uyumsuz olarak temizler, arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur ve iptal isteklerini izler.

FlushAsync(CancellationToken)

Bu akış için tüm arabellekleri zaman uyumsuz olarak temizler, arabelleğe alınan verilerin temel alınan cihaza yazılmasına neden olur ve iptal isteklerini izler.

(Devralındığı yer: Stream)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
ObjectInvariant()
Geçersiz.

Contractiçin destek sağlar.

(Devralındığı yer: Stream)
Read(Byte[], Int32, Int32)

Geçerli arabelleğe alınan akıştan bir diziye bayt kopyalar.

Read(Span<Byte>)

Geçerli arabelleğe alınan akıştan baytları bayt aralığına kopyalar ve arabelleğe alınan akıştaki konumu okunan bayt sayısına göre ilerler.

Read(Span<Byte>)

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli akıştan bir bayt dizisi okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadAsync(Byte[], Int32, Int32)

Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi okur, okunan bayt sayısına göre akış içindeki konumu ilerletir ve iptal isteklerini izler.

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi okur, okunan bayt sayısına göre akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadAsync(Memory<Byte>, CancellationToken)

Geçerli arabelleğe alınan akıştan zaman uyumsuz olarak bir bayt dizisi okur ve arabelleğe alınan akıştaki konumu okunan bayt sayısına göre ilerletir.

ReadAsync(Memory<Byte>, CancellationToken)

Geçerli akıştan zaman uyumsuz olarak bir bayt dizisi okur, okunan bayt sayısına göre akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Geçerli akıştan en az bayt sayısını okur ve okunan bayt sayısına göre akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Geçerli akıştan en az en az sayıda bayt zaman uyumsuz olarak okur, okunan bayt sayısına göre akıştaki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadByte()

Temel alınan akıştan bir bayt okur ve bayt atamasını bir intdöndürür veya akışın sonundan okuyorsanız -1 döndürür.

ReadExactly(Byte[], Int32, Int32)

Geçerli akıştan count bayt sayısını okur ve akış içindeki konumu ilerletir.

(Devralındığı yer: Stream)
ReadExactly(Span<Byte>)

Geçerli akıştan baytları okur ve buffer doldurulana kadar akıştaki konumu ilerletir.

(Devralındığı yer: Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Geçerli akıştan count bayt sayısını zaman uyumsuz olarak okur, akış içindeki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Geçerli akıştaki baytları zaman uyumsuz olarak okur, buffer doldurulana kadar akıştaki konumu ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
Seek(Int64, SeekOrigin)

Geçerli arabelleğe alınan akış içindeki konumu ayarlar.

SetLength(Int64)

Arabelleğe alınan akışın uzunluğunu ayarlar.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
Write(Byte[], Int32, Int32)

Baytları arabelleğe alınan akışa kopyalar ve arabelleğe alınan akıştaki geçerli konumu yazılan bayt sayısına göre ilerler.

Write(ReadOnlySpan<Byte>)

Geçerli arabelleğe alınan akışa bayt dizisi yazar ve bu arabelleğe alınan akıştaki geçerli konumu yazılan bayt sayısına göre ilerler.

Write(ReadOnlySpan<Byte>)

Türetilmiş bir sınıfta geçersiz kılındığında, geçerli akışa bir bayt dizisi yazar ve yazılan bayt sayısıyla bu akıştaki geçerli konumu ilerletir.

(Devralındığı yer: Stream)
WriteAsync(Byte[], Int32, Int32)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar ve bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir.

(Devralındığı yer: Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar, bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler.

WriteAsync(Byte[], Int32, Int32, CancellationToken)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar, bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Zaman uyumsuz olarak geçerli arabelleğe alınan akışa bir bayt dizisi yazar, bu arabelleğe alınan akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler.

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Zaman uyumsuz olarak geçerli akışa bir bayt dizisi yazar, bu akıştaki geçerli konumu yazılan bayt sayısına göre ilerletir ve iptal isteklerini izler.

(Devralındığı yer: Stream)
WriteByte(Byte)

Arabelleğe alınan akıştaki geçerli konuma bir bayt yazar.

Belirtik Arabirim Kullanımları

IDisposable.Dispose()

Streamtarafından kullanılan tüm kaynakları serbest bırakır.

(Devralındığı yer: Stream)

Uzantı Metotları

CopyToAsync(Stream, PipeWriter, CancellationToken)

Stream baytları zaman uyumsuz olarak okur ve bir iptal belirteci kullanarak belirtilen PipeWriteryazar.

ConfigureAwait(IAsyncDisposable, Boolean)

Zaman uyumsuz bir atılabilir öğeden döndürülen görevlerde awaits işleminin nasıl gerçekleştirileceğini yapılandırılır.

Şunlara uygulanır

Ürün Sürümler
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.5, 1.6, 2.0, 2.1

Ayrıca bkz.