InternalBufferOverflowException Klasse

Definition

Die Ausnahme, die ausgelöst wird, wenn der interne Puffer überläuft.

public ref class InternalBufferOverflowException : SystemException
public class InternalBufferOverflowException : SystemException
[System.Serializable]
public class InternalBufferOverflowException : SystemException
type InternalBufferOverflowException = class
    inherit SystemException
[<System.Serializable>]
type InternalBufferOverflowException = class
    inherit SystemException
Public Class InternalBufferOverflowException
Inherits SystemException
Vererbung
InternalBufferOverflowException
Attribute

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie eine FileSystemWatcher erstellen, um Dateiänderungen zu überwachen (erstellt, löscht, umbenennen, Änderungen), die auf einem Datenträgerlaufwerk auftreten. Im Beispiel wird auch gezeigt, wie Fehlerbenachrichtigungen ordnungsgemäß empfangen werden.

using System;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        //  Create a FileSystemWatcher to monitor all files on drive C.
        FileSystemWatcher fsw = new FileSystemWatcher("C:\\");

        //  Watch for changes in LastAccess and LastWrite times, and
        //  the renaming of files or directories.
        fsw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
            | NotifyFilters.FileName |NotifyFilters.DirectoryName;

        //  Register a handler that gets called when a
        //  file is created, changed, or deleted.
        fsw.Changed += new FileSystemEventHandler(OnChanged);

        fsw.Created += new FileSystemEventHandler(OnChanged);

        fsw.Deleted += new FileSystemEventHandler(OnChanged);

        //  Register a handler that gets called when a file is renamed.
        fsw.Renamed += new RenamedEventHandler(OnRenamed);

        //  Register a handler that gets called if the
        //  FileSystemWatcher needs to report an error.
        fsw.Error += new ErrorEventHandler(OnError);

        //  Begin watching.
        fsw.EnableRaisingEvents = true;

        Console.WriteLine("Press \'Enter\' to quit the sample.");
        Console.ReadLine();
    }

    //  This method is called when a file is created, changed, or deleted.
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
        //  Show that a file has been created, changed, or deleted.
        WatcherChangeTypes wct = e.ChangeType;
        Console.WriteLine("File {0} {1}", e.FullPath, wct.ToString());
    }

    //  This method is called when a file is renamed.
    private static void OnRenamed(object source, RenamedEventArgs e)
    {
        //  Show that a file has been renamed.
        WatcherChangeTypes wct = e.ChangeType;
        Console.WriteLine("File {0} {2} to {1}", e.OldFullPath, e.FullPath, wct.ToString());
    }

    //  This method is called when the FileSystemWatcher detects an error.
    private static void OnError(object source, ErrorEventArgs e)
    {
        //  Show that an error has been detected.
        Console.WriteLine("The FileSystemWatcher has detected an error");
        //  Give more information if the error is due to an internal buffer overflow.
        if (e.GetException().GetType() == typeof(InternalBufferOverflowException))
        {
            //  This can happen if Windows is reporting many file system events quickly
            //  and internal buffer of the  FileSystemWatcher is not large enough to handle this
            //  rate of events. The InternalBufferOverflowException error informs the application
            //  that some of the file system events are being lost.
            Console.WriteLine(("The file system watcher experienced an internal buffer overflow: " + e.GetException().Message));
        }
    }
}
Imports System.IO

Module Module1
    Sub Main()
        ' Create a FileSystemWatcher to monitor all files on drive C.
        Dim fsw As New FileSystemWatcher("C:\")

        ' Watch for changes in LastAccess and LastWrite times, and
        ' the renaming of files or directories. 
        fsw.NotifyFilter = (NotifyFilters.LastAccess Or NotifyFilters.LastWrite _ 
            Or NotifyFilters.FileName Or NotifyFilters.DirectoryName)

        ' Register a handler that gets called when a 
        ' file is created, changed, or deleted.
        AddHandler fsw.Changed, New FileSystemEventHandler(AddressOf OnChanged)

        ' The commented line of code below is a shorthand of the above line.
        ' AddHandler fsw.Changed, AddressOf OnChanged

        ' NOTE: The shorthand version is used in the remainder of this code.
        ' FileSystemEventHandler
        AddHandler fsw.Created, AddressOf OnChanged 
        ' FileSystemEventHandler
        AddHandler fsw.Deleted, AddressOf OnChanged

        ' Register a handler that gets called when a file is renamed.
        ' RenamedEventHandler
        AddHandler fsw.Renamed, AddressOf OnRenamed

        ' Register a handler that gets called if the 
        ' FileSystemWatcher needs to report an error.
        ' ErrorEventHandler
        AddHandler fsw.Error, AddressOf OnError

        ' Begin watching.
        fsw.EnableRaisingEvents = True

        ' Wait for the user to quit the program.
        Console.WriteLine("Press 'Enter' to quit the sample.")
        Console.ReadLine()
    End Sub

    ' This method is called when a file is created, changed, or deleted.
    Private Sub OnChanged(ByVal source As Object, ByVal e As FileSystemEventArgs)

        ' Show that a file has been created, changed, or deleted.
        Dim wct As WatcherChangeTypes = e.ChangeType
        Console.WriteLine("File {0} {1}", e.FullPath, wct.ToString())
    End Sub

    ' This method is called when a file is renamed.
    Private Sub OnRenamed(ByVal source As Object, ByVal e As RenamedEventArgs)

        ' Show that a file has been renamed.
        Dim wct As WatcherChangeTypes = e.ChangeType
        Console.WriteLine("File {0} {2} to {1}", e.OldFullPath, e.FullPath, wct.ToString())
    End Sub

    ' This method is called when the FileSystemWatcher detects an error.
    Private Sub OnError(ByVal source As Object, ByVal e As ErrorEventArgs)

        ' Show that an error has been detected.
        Console.WriteLine("The FileSystemWatcher has detected an error")

        ' Give more information if the error is due to an internal buffer overflow.
        If TypeOf e.GetException Is InternalBufferOverflowException Then
            ' This can happen if Windows is reporting many file system events quickly 
            ' and internal buffer of the  FileSystemWatcher is not large enough to handle this
            ' rate of events. The InternalBufferOverflowException error informs the application
            ' that some of the file system events are being lost.
            Console.WriteLine( _
                "The file system watcher experienced an internal buffer overflow: " _
                + e.GetException.Message)
        End If
    End Sub
End Module

Hinweise

Wenn Sie über Dateiänderungen benachrichtigt werden, speichert das System diese Änderungen in einem FileSystemWatcherPuffer, den die Komponente erstellt und an die Anwendungsprogrammierschnittstellen (APIs) übergeben wird. Wenn es in kurzer Zeit viele Änderungen gibt, kann der Puffer leicht überlaufen, wodurch eine Ausnahme ausgelöst wird, die im Wesentlichen alle Änderungen verliert. Um den Puffer zu überlaufen, verwenden Sie die FileSystemWatcher.NotifyFilter und FileSystemWatcher.IncludeSubdirectories die Eigenschaften, um Ihre unerwünschten Änderungsbenachrichtigungen auszufiltern. Sie können Größe des internen Puffers auch mit der FileSystemWatcher.InternalBufferSize-Eigenschaft vergrößern. Die Erhöhung der Größe des Puffers ist jedoch teuer, sodass der Puffer so klein wie möglich bleibt.

Konstruktoren

InternalBufferOverflowException()

Initialisiert eine neue Standardinstanz der InternalBufferOverflowException-Klasse.

InternalBufferOverflowException(SerializationInfo, StreamingContext)

Initialisiert eine neue leere Instanz der InternalBufferOverflowException-Klasse, die serialisierbar ist, wobei die angegebenen SerializationInfo-Objekte und die angegebenen StreamingContext-Objekte verwendet werden.

InternalBufferOverflowException(String)

Initialisiert eine neue Instanz der InternalBufferOverflowException-Klasse mit den Angaben für die anzuzeigende Fehlermeldung.

InternalBufferOverflowException(String, Exception)

Initialisiert eine neue Instanz der InternalBufferOverflowException-Klasse mit den Angaben für die anzuzeigende Meldung und die generierte innere Ausnahme.

Eigenschaften

Data

Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen.

(Geerbt von Exception)
HelpLink

Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest.

(Geerbt von Exception)
HResult

Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist.

(Geerbt von Exception)
InnerException

Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat.

(Geerbt von Exception)
Message

Ruft eine Meldung ab, mit der die aktuelle Ausnahme beschrieben wird.

(Geerbt von Exception)
Source

Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest.

(Geerbt von Exception)
StackTrace

Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab.

(Geerbt von Exception)
TargetSite

Ruft die Methode ab, die die aktuelle Ausnahme auslöst.

(Geerbt von Exception)

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetBaseException()

Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die Grundursache für eine oder mehrere nachfolgende Ausnahmen ist.

(Geerbt von Exception)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetObjectData(SerializationInfo, StreamingContext)

Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest.

(Geerbt von Exception)
GetType()

Ruft den Laufzeittyp der aktuellen Instanz ab.

(Geerbt von Exception)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück.

(Geerbt von Exception)

Ereignisse

SerializeObjectState
Veraltet.

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen.

(Geerbt von Exception)

Gilt für

Siehe auch