| |

VB.NET - FortgeschritteneFehlerbehandlung | |  | Autor: 10085998 | Datum: 17.02.06 15:54 |
| Hallo Leute,
Zuallererst: Die relevanten Code-Fragmente sind unten angehängt.
Nun zum eigentlichen Problem:
Ich habe eine Anwendung geschrieben, die Threads benutzt.
Die Anwendung funktioniert auch wunderbar bis auch die Fehlerbehandlung.
Ich habe im Thread ein Try, catch eingebaut, das den Fehler in einer Errorlog-Datei mitloggen soll.
Dies klappt auch im Grunde hervorragend.
Nur ist es so, dass wenn 2 gleichzeitig laufende Threads im selben Moment einen Fehler verursachen, der eine Thread die errorlog-Datei noch öffnen kann, der andere Thread beim Versuch diese Datei zu öffnen eine Fehler verursacht, da die Errorlog-Datei gerade vom anderen Thread benutzt wird.
Jetzt meine Fragen:
a) Kennt jemand eine Möglichkeit zu überprüfen ob die Datei schon geöffnet ist, damit ich den catch-Block soweit umbauen kann, dass dieser mit dem Öffnen der Datei solange wartet, bis die Datei wieder freigegeben ist.
b) Wenn in einem Catch-Block ein Fehler auftritt, kann ich in diesem Block wiederum eine Try, catch Routine einbauen um diesen Fehler abzufangen? Kann man Try, catch Routinen im catch-Block öfters ineinander verschachteln?
c) Hat jemand eine bessere Idee, wie ich das gewünschte realisieren kann, nämlich dass die einzelnen Threads ihre Fehlermeldungen in einer Datei mitloggen, aber sich bei diesem Dateizugriff nicht gegeneinander stören?
Ich hoffe hier kann mir jemand von euch weiterhelfen.
vielen Dank im voraus
Gerd
Klassenfragment:
Option Strict Off
Option Explicit On
Imports System
Imports System.IO
Imports System.Threading
Class TestThread
Const errorfilename = "error.txt"
Public Sub TestThread()
Dim th As Thread
'Initialisiert und startet den Thread
th = New Thread(New ThreadStart(AddressOf Run))
th.Start()
End Sub
Public Sub Run()
Dim L
Try
'Hier steht der Hauptcode
Catch ex As Exception
L = FreeFile()
FileOpen(L, errorfilename, OpenMode.Append)
PrintLine(L, ex.ToString())
FileClose(L)
End Try
End Sub
End Class |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|