Aufruf Einer Methode Irgendie Protokollieren
#1
geschrieben 06. Dezember 2006 - 17:35
ich habe (mal wieder) ein kleines Problem. Ich habe eine Methode für eine DLL geschrieben. Diese DLL wird von 2 Programmen verwendet. Ebenso die genannte Methode.
Jetzt kann es vorkommen das beide Programme diese Methode ausführen wollen, was aber nicht geht (dateien werden kopiert etc.). --> Exceptions.
Habe ich irgendweine Möglichkeit zu hinterlegen ob die Methode bereits andersweitig läuft? Ich hab schon an die Reg gedacht die zu beginn und ende Flags setzt, allerdings könnte das bei einem Systemabsturz fatal sein. Oder bei einem Programmabsturz.
Hat jemand eine andere Idee?
MFG
Don
Anzeige
#2
geschrieben 06. Dezember 2006 - 17:38

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#4
geschrieben 06. Dezember 2006 - 17:59
http://de.wikipedia.org/wiki/Lock
http://de.wikipedia....28Informatik%29
http://de.wikipedia.org/wiki/Mutex
#5
geschrieben 06. Dezember 2006 - 18:02
#6
geschrieben 06. Dezember 2006 - 21:37
Dieser Beitrag wurde von Rika bearbeitet: 06. Dezember 2006 - 21:37

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#7
geschrieben 06. Dezember 2006 - 22:45
Zitat (Rika: 06.12.2006, 21:37)
Erkläre ihm bitte was er wie genau machen muss!!!!
#8
geschrieben 06. Dezember 2006 - 22:56
Auch das ist Teil einer NEtiquette
(Marco Gercke)
#9
geschrieben 06. Dezember 2006 - 23:52
Zitat (ShadowHunter: 06.12.2006, 22:56)
Auch das ist Teil einer NEtiquette
@DonElTomato: Um Dir helfen zu können, sollten wir zumindest wissen, in welcher Sprache Du programmierts.
#10
geschrieben 07. Dezember 2006 - 08:02
Zitat
Zitat
Da du noch nicht so lange hier im Forum unterwegs bist, gebe ich dir einen kleinen Tipp wie man so etwas ganz einfach herausbekommt: Du klickst auf sein Profil und guckst dir dort einige Beiträge an, die er schon geschrieben hat. Und schwupps stellst du fest, dass er schon etwas länger in C# entwickelt...
Somit sind in diesem Fall Sprüche wie "Du hast jetzt die Begriffe/Konzepte, schau in die Dokumentation wie man das ggf. umsetzt" IMO nicht unberechtigt.
Und wenn es dann Probleme bei der Umsetzung geben sollte, helfen wir hier sehr gerne, aber einem alles aus den Fingern zu saugen...das geht einfach nicht.
#11
geschrieben 07. Dezember 2006 - 08:39
Natürlich habe ich mal gegoogelt oder be Wikipedia reingeschaut. Allerdings habe ich "wie gesagt" Probleme bei der Umsetzung. Bedeutet, Ich habe zwar Beispiele gefunden allerdings beziehen diese sich auf Objekte, nicht auf Methoden... weiterhin bekomme ich nicht mal deren Funktion "nachprogrammeirt".
Daher halt die leider nicht ausformulierte Frage, ob da jemand erfahrung, "gute" Tutorials o.ä. kennt. Einfach um das Ergebnis schneller herbei zu führen als wenn ich an Hand der MSDN oder anderen Quellen was zusammenschustere.
Was Mutex, Monitor etc. eigentlich ist weiß ich bereits.
MFG
Don
P.S.: Ein Objekt kann ich bereits sperren, allerdings liegt das Problem darin damit zu interagieren. Ich habe zwar raus wie man andere Threads dazu bewegt das sie mit der Ausführung warten, allerdings versuche ich damit zu interaggieren -> also if(Used == true) oder soetwas.
Dieser Beitrag wurde von DonElTomato bearbeitet: 07. Dezember 2006 - 08:49
#12
geschrieben 07. Dezember 2006 - 11:06
1. In dem Programm ist die DLL nicht mehr als Referenz angegeben
2. Die Methode wird mittels Assembly.Load... etc. ausgeführt.
3. Mit Mutex wird zu beginn geprüft ob die aktuelle Instanz die erste ist.
Sollte Sie die erste sein wird sie ausgeführt, falls nicht wird der Vorgang abgebrochen.
4. Nach der Methode wird der Garbage-Collector ausgeführt der die nicht mehr benötigte Instanz entsorgt.
Ergebnis: Egal wie ioft ich das Programm starte, die Methode kann nur 1x ausgeführt werden. Erst nachdem sie beendet wurde kann Sie erneutausgeführt werden, egal von welchem Assembly/Programm.
MFG
Don

Hilfe
Neues Thema
Antworten
Nach oben



