Seite 1 von 1
Aufruf Einer Methode Irgendie Protokollieren
#1
geschrieben 06. Dezember 2006 - 17:35
Hallo,
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
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
Was sind Locks? Was sind Monitore? Was sind Semaphoren? Was sind Mutexe?
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#4
geschrieben 06. Dezember 2006 - 17:59
Manchmal ist man nur ein Klick weit entfernt
http://de.wikipedia.org/wiki/Lock
http://de.wikipedia....28Informatik%29
http://de.wikipedia.org/wiki/Mutex
http://de.wikipedia.org/wiki/Lock
http://de.wikipedia....28Informatik%29
http://de.wikipedia.org/wiki/Mutex
#5
geschrieben 06. Dezember 2006 - 18:02
Danke habs schon gelesen ;-) Leider fällt mir die Umsetzung etwas schwer....
#6
geschrieben 06. Dezember 2006 - 21:37
Dann solltest du vielleicht nicht programmieren, wenn du nicht einmal grundlegende Konzepte kennst. Oder nicht einmal in der Dokumentation (z.B. MSDN) nachschlagen kannst.
Dieser Beitrag wurde von Rika bearbeitet: 06. Dezember 2006 - 21:37
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
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)
Dann solltest du vielleicht nicht programmieren, wenn du nicht einmal grundlegende Konzepte kennst. Oder nicht einmal in der Dokumentation (z.B. MSDN) nachschlagen kannst.
Erkläre ihm bitte was er wie genau machen muss!!!!
#8
geschrieben 06. Dezember 2006 - 22:56
Trotzdem kann man in "Handbüchern" und bei google erstmal schaun ob es nicht bereits eine passende Anleitung für ein Problem gibt.
Auch das ist Teil einer NEtiquette
Auch das ist Teil einer NEtiquette
"Wir können Regierungen nicht trauen, wir müssen sie kontrollieren"
(Marco Gercke)
(Marco Gercke)
#9
geschrieben 06. Dezember 2006 - 23:52
Zitat (ShadowHunter: 06.12.2006, 22:56)
Trotzdem kann man in "Handbüchern" und bei google erstmal schaun ob es nicht bereits eine passende Anleitung für ein Problem gibt.
Auch das ist Teil einer NEtiquette
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
Sorry DonElTomato, ich unterstell Dir das jetz mal
Zitat
Um Dir helfen zu können, sollten wir zumindest wissen, in welcher Sprache Du programmierts.
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
Also das ich Anfänger bin stimmt schon, und das man hier Fragen stellen kann hatte ich auch gedacht.
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.
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
Da bin ich wieder. Habs jetzt gelöst und wollte nur kurz hinterlasen wie. Falls das jemanden interessieren sollte:
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
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
Thema verteilen:
Seite 1 von 1