FileStream.IsAsync FileStream.IsAsync FileStream.IsAsync FileStream.IsAsync Property

Definition

Ruft einen Wert ab, der angibt, ob der FileStream asynchron oder synchron geöffnet wurde.Gets a value that indicates whether the FileStream was opened asynchronously or synchronously.

public:
 virtual property bool IsAsync { bool get(); };
public virtual bool IsAsync { get; }
member this.IsAsync : bool
Public Overridable ReadOnly Property IsAsync As Boolean

Eigenschaftswert

true, wenn FileStream asynchron geöffnet wurde, andernfalls false.true if the FileStream was opened asynchronously; otherwise, false.

Beispiele

Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) Konstruktor.This code example is part of a larger example provided for the FileStream(String, FileMode, FileAccess, FileShare, Int32, Boolean) constructor.

int main()
{
   
   // Create a synchronization object that gets 
   // signaled when verification is complete.
   ManualResetEvent^ manualEvent = gcnew ManualResetEvent( false );
   
   // Create the data to write to the file.
   array<Byte>^writeArray = gcnew array<Byte>(100000);
   (gcnew Random)->NextBytes( writeArray );
   FileStream^ fStream = gcnew FileStream(  "Test#@@#.dat",FileMode::Create,FileAccess::ReadWrite,FileShare::None,4096,true );
   
   // Check that the FileStream was opened asynchronously.
   Console::WriteLine( "fStream was {0}opened asynchronously.", fStream->IsAsync ? (String^)"" : "not " );
   
   // Asynchronously write to the file.
   IAsyncResult^ asyncResult = fStream->BeginWrite( writeArray, 0, writeArray->Length, gcnew AsyncCallback( &FStream::EndWriteCallback ), gcnew State( fStream,writeArray,manualEvent ) );
   
   // Concurrently do other work and then wait 
   // for the data to be written and verified.
   manualEvent->WaitOne( 5000, false );
}

static void Main()
{
    // Create a synchronization object that gets 
    // signaled when verification is complete.
    ManualResetEvent manualEvent = new ManualResetEvent(false);

    // Create random data to write to the file.
    byte[] writeArray = new byte[100000];
    new Random().NextBytes(writeArray);

    FileStream fStream = 
        new FileStream("Test#@@#.dat", FileMode.Create, 
        FileAccess.ReadWrite, FileShare.None, 4096, true);

    // Check that the FileStream was opened asynchronously.
    Console.WriteLine("fStream was {0}opened asynchronously.",
        fStream.IsAsync ? "" : "not ");

    // Asynchronously write to the file.
    IAsyncResult asyncResult = fStream.BeginWrite(
        writeArray, 0, writeArray.Length, 
        new AsyncCallback(EndWriteCallback), 
        new State(fStream, writeArray, manualEvent));

    // Concurrently do other work and then wait 
    // for the data to be written and verified.
    manualEvent.WaitOne(5000, false);
}
Shared Sub Main()

    ' Create a synchronization object that gets 
    ' signaled when verification is complete.
    Dim manualEvent As New ManualResetEvent(False)

    ' Create random data to write to the file.
    Dim writeArray(100000) As Byte
    Dim randomGenerator As New Random()
    randomGenerator.NextBytes(writeArray)

    Dim fStream As New FileStream("Test#@@#.dat", _
        FileMode.Create, FileAccess.ReadWrite, _
        FileShare.None, 4096, True)

    ' Check that the FileStream was opened asynchronously.
    If fStream.IsAsync = True
        Console.WriteLine("fStream was opened asynchronously.")
    Else
        Console.WriteLine("fStream was not opened asynchronously.")
    End If

    ' Asynchronously write to the file.
    Dim asyncResult As IAsyncResult = fStream.BeginWrite( _
        writeArray, 0, writeArray.Length, _
        AddressOf EndWriteCallback , _
        New State(fStream, writeArray, manualEvent))

    ' Concurrently do other work and then wait
    ' for the data to be written and verified.
    manualEvent.WaitOne(5000, False)
End Sub

Hinweise

Die IsAsync Eigenschaft erkennt, ob die FileStream Handle asynchron geöffnet wurde, ermöglichen Ihren Code, um die Handle Eigenschaft ordnungsgemäß.The IsAsync property detects whether the FileStream handle was opened asynchronously, enabling your code to use the Handle property correctly. In Win32 "" IsAsync wird "true" bedeutet, dass das Handle geöffnet wurde, für die überlappende e/a und erfordert daher verschiedene Parameter für ReadFile und WriteFile.In Win32, IsAsync being true means the handle was opened for overlapped I/O, and thus requires different parameters to ReadFile and WriteFile.

Sie geben Sie diesen Wert bei der Erstellung einer Instanz von der FileStream -Klasse unter Verwendung eines Konstruktors, die eine isAsync, useAsync, oder options Parameter.You specify this value when you create an instance of the FileStream class using a constructor that has an isAsync, useAsync, or options parameter. Wenn die Eigenschaft ist true, der Datenstrom verwendet überlappende e/a, um die Dateivorgänge asynchron ausführen.When the property is true, the stream utilizes overlapped I/O to perform file operations asynchronously. Allerdings die IsAsync Eigenschaft hat keine sein true zum Aufrufen der ReadAsync, WriteAsync, oder CopyToAsync Methode.However, the IsAsync property does not have to be true to call the ReadAsync, WriteAsync, or CopyToAsync method. Wenn die IsAsync Eigenschaft false und Sie rufen den asynchronen Lesevorgang und Schreibvorgänge, der UI-Thread wird weiterhin nicht blockiert, aber der tatsächliche e/a-Vorgang synchron ausgeführt wird.When the IsAsync property is false and you call the asynchronous read and write operations, the UI thread is still not blocked, but the actual I/O operation is performed synchronously.

Gilt für:

Siehe auch