Ich verwende ArcObjects und habe die von Ihnen erwähnte try / catch-Methode verwendet.
In meinem Fall muss mehr als ein Benutzer Daten in derselben Feature-Class in einer Geodatabase lesen und schreiben. Ich habe einen "Ladebildschirm", der den Benutzer darüber informiert, dass die Daten verwendet werden, und dann versucht eine Schleife alle paar Sekunden im Hintergrund, bis eine Sperre für sie erstellt werden kann.
Die andere Art, wie ich Schlösser verwendet habe, wird unten beschrieben. Ich weiß, dass meine Verwendung dieser Methode zum Betrachten von Sperrdateien sich von dem unterscheidet, was Sie tun möchten, aber das Konzept ist dasselbe und Sie können möglicherweise etwas Ähnliches verwenden, wenn Sie den Typ der Sperre bestimmen müssen oder wem die Sperre gehört . Hier ist die Info, wenn Sie interessiert sind.
Da Sie die spezifischen Sperrdateien sehen können, wem sie gehören, welche Art von Sperre sie sind usw. Wenn Sie in die Geodatabase im Windows Explorer schauen, erstellen Sie eine eigenständige "Status" -Anwendung, die die Sperrdateien der spezifischen Sperrdateien überwacht Feature-Class, die wir alle verwenden.
Mit dieser Methode kann ich in Echtzeit anhand eines einfach zu lesenden Dashboards sehen, wer diese Feature-Class gesperrt hat (basierend auf dem Computernamen) und welche Art von Sperre sie haben. Wenn beispielsweise eine "sr" -Sperre (Schema) angezeigt wird, von der ich weiß, dass sie die Feature-Class zu ihrem Inhaltsverzeichnis hinzugefügt haben, bedeutet eine "rd" -Sperre, dass sie aus der Feature-Class lesen. Eine "wr" -Sperre bedeutet, dass sie schreiben Daten und eine "ed" -Sperre bedeuten, dass für die Feature-Class eine Bearbeitungssitzung geöffnet ist.
Dies ist sehr hilfreich bei der Durchführung von Wartungsarbeiten, um einen Blick nach unten zu werfen und sicherzustellen, dass sich dies nicht negativ auf jemanden auswirkt. Der Eintrag "Unbekannt" warnt mich auch, wenn jemand Unerwartetes die Feature-Class verwendet und ich weitere Untersuchungen durchführen kann.
Hier ist ein Screenshot des von mir verwendeten Dashboards.