Hallo,
gibt es in C# einen Timer oder ein Thread, der nach beendigung des Programmes noch lebt?
Oder muss man CreateThread aus der api hohlen?
Gruß Stu
Also ich glaube nicht das es im .NET Framework diese Funktionalität gibt.
hallo,
ich selbst würde es wohl mit 3. lösen. aber vllt weiß ja sonst noch einer nen besseren vorschlag 😉
mfg
If you don't like me for who I am, then you don't like me for who I am, but all you're gonna get, is who I am.
ja ich brauche nen 15 min timer, der geräte nach beendigung des Programmes abschaltet.
Das mit der unsichtbaren form finde ich von der Struktur her nicht so toll, diese kleine sache an einer so "großen" stelle unterbringen.
Das externe programm muss dann ja auch abfragen, wenn meine form geschlossen ist.
Ich werd dann doch wohl den CreateThread nehmen müssen.
Ich versteh den Sinn noch nicht ganz. Dein Programm soll ja, so wie ichs verstehe, den Thread starten und der veranlasst dann dass Geräte abgeschaltet werden sollen. Wieso kann dein Programm das nicht direkt beim beenden tun? Falls die Geräte erst noch irgendwas tun müssen kannst du doch dein Programm bloß scheinbar beenden, indem du es einfach unsichtbar machst so das es nicht mehr in der Taskbar erscheint und lässt halt in deinem Programm den Timer laufen.
Baka wa shinanakya naoranai.
Mein XING Profil.
Original von Stu42
ja ich brauche nen 15 min timer, der geräte nach beendigung des Programmes abschaltet.Das mit der unsichtbaren form finde ich von der Struktur her nicht so toll, diese kleine sache an einer so "großen" stelle unterbringen.
Das externe programm muss dann ja auch abfragen, wenn meine form geschlossen ist.
Ich werd dann doch wohl den CreateThread nehmen müssen.
warum blendest du beim schließen deines programmes nicht einfach nur die form aus, startest nen 15min timer und fährst beim ablauf die geräte runter und beendest danach das programm? das macht meiner meinung nach am meisten sinn...
ja das problem ist, in dem geräte ist eine UV-Lampe drin. Die sind teuer und haben eine begrenzte lebensdauert. Zu oft darf man sie aber auch nicht ein und ausschalten.
Aber wenn nach 10 min das Programm wieder gestartet wird, darf der TImer das geräte nicht abschalten.
D.h der Timer muss auch schauen wer zugriff auch das Gerät hat.
vieleicht ist da doch das externe programm besser.
Hmm, haben die Geräte keine Abschaltautomatik wie Beamer?
Aber wie gesagt, die Lösung von sheitman und mir mit dem verstecken und dann beenden aus der normalen Form ist um einiges besser, als extra was zu starten.
Baka wa shinanakya naoranai.
Mein XING Profil.
Original von Stu42
ja das problem ist, in dem geräte ist eine UV-Lampe drin. Die sind teuer und haben eine begrenzte lebensdauert. Zu oft darf man sie aber auch nicht ein und ausschalten.Aber wenn nach 10 min das Programm wieder gestartet wird, darf der TImer das geräte nicht abschalten.
D.h der Timer muss auch schauen wer zugriff auch das Gerät hat.
vieleicht ist da doch das externe programm besser.
dazu fällt mir die tolle thematik ein "verhindern von mehreren instanzen meiner anwendung"... such mal dazu im forum... glaub im faq bereich steht da sicher was 🙂
im grunde gehts darum das dein programm beim starten schaut ob es denn schon läuft
falls ja, könnte dein programm dann eine nachricht an sich selbst (also die schon bestehende instanz) schicken, daß dann dadurch den timer unterbricht und wieder arbeitet
könnte bissl fummelarbeit sein aber klingt vom prinzip her für mich als elegante und schöne lösung =)
Immer diese Edits wo dann die Antwort nimmer passt 🙂
Die von sheitman angesprochene Lösung gibts auch in der FAQ weil laufend danach gefragt wird: [FAQ] mehrere Programminstanzen verhindern (inkl. Parameterübergabe)
Baka wa shinanakya naoranai.
Mein XING Profil.
ja das programm soll man ja doppelt öffnen können.
Aber ich werde wohl die Regestrie beschreiben. Der Timer kann dann ja schauen, ob dort eine Flag gesetzt ist.
Den Timer starte ich dann, so wie ihr es gesagt habt, wenn die Form beendet ist.
Lass das Programm halt den ganzen Tag laufen und gut ist 🤔
Also das mit der Registry kann man machen, aber würd ich persönlich nicht zu raten. Gibt Probleme wenn du keine Adminrechte hast. Die Variante mit schaun ob schon eine Instanz läuft und der dann signalisieren das das Gerät nicht abgeschaltet werden soll ist denk ich besser, wenn auch schwieriger umzusetzen.
Baka wa shinanakya naoranai.
Mein XING Profil.