C# FileSystemWatcher Disposed sich von selbst?

Hallo,

warum auch immer, aber mein FileSystemWatcher Disposed sich immer von selbst. Ich benutze eine Console Anwendung (.Net Framework.4.8).

Das komische, ich habe das mal bei Windows Forms benutzt vor 2 Tagen, da lief es wunderbar, warum disposed der sofort in der Console?

log.Info(Path.GetDirectoryName(args[0]));
            try
            {
                using (fileSystemWatcher = new FileSystemWatcher(Path.GetDirectoryName(args[0])))
                {
                    fileSystemWatcher.IncludeSubdirectories = true;
                    fileSystemWatcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size | NotifyFilters.Attributes | NotifyFilters.CreationTime;
                    fileSystemWatcher.Filter = "*.js";
                    fileSystemWatcher.Changed += new FileSystemEventHandler(JSChanged);
                    fileSystemWatcher.Disposed += new EventHandler(JSDisposed);
                    fileSystemWatcher.Error += new ErrorEventHandler(JSError);
                    fileSystemWatcher.EnableRaisingEvents = true;
                }
            }
            catch(Exception ex)
            {
                log.Error(ex.Message);
            }

Der Ordnerpfad ist korrekt, das habe ich oben mit log.Info geprüft. Habe ich irgendwas übersehen?

Es wird das fileSystemWatcher.Disposed Event aufgerufen

Danke schon mal im Voraus

Bild zum Beitrag
Computer, programmieren, C Sharp, CS, Visual Studio, .net-Framework
Zweimal DHT22 Sensor verwenden?

Hallo,

ich baue gerade eine Art "Wetterstation" mit meinem Arduino dazu verwende ich zweimal den DHT22 um die Temperatur und Luftfeuchtigkeit innen und außen zu messen. Ich habe nun das Problem, dass ich einen Befehl (Fett gedruckt) nicht einfach doppelt verwenden kann. Was macht dieser Befehl ? Wie kann ich einfach beide Sensoren verwenden?

Danke im Voraus!

Code:

#include <SimpleDHT.h>

#include <LiquidCrystal.h>

int pinDHT22in = 8;

int pinDHT22out = 9;

int Sensorwert;

const uint8_t rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

SimpleDHT22 dht22(pinDHT22in);

void setup(){

 Serial.begin(115200);             // Damit unsere Werte später im seriellen Monitor angezeigt werden können, legen wir zuerst die Baudrate 9600 fest.

 pinMode( 0 , INPUT);             // Pin 0 dient nun als Input

 lcd.begin(20, 4);              //Im Setup wird angegeben, wie viele Zeichen und Zeilen verwendet werden. Hier: 16 Zeichen in 4 Zeilen.

 lcd.clear();

}

void loop()

{

   Sensorwert = analogRead(0);       // Zuerst wird der Wert (gas) am Pin A0 ausgelesen...

     

   Serial.print("Der erfasste Wert lautet : "); 

   Serial.println(Sensorwert, DEC);     //... und anschließend im seriellen Monitor als Dezimalzahl ausgegeben.

   Serial.println();

   lcd.setCursor(0, 0);

   lcd.print("Messwert (gas): ");

   lcd.print(Sensorwert);

   delay(1000);

      float temperature = 0;

      float humidity = 0;

      int err = SimpleDHTErrSuccess;

      if((err=dht22.read2(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess){

       lcd.setCursor(0, 1);

       lcd.print("Read DHT22 failed, err=");

       lcd.print(err);

       delay(2000);

       return;

}

     lcd.setCursor(0, 1);

     lcd.print("Temp(in): ");

     lcd.print((float)temperature);

     lcd.print(" *C");

     lcd.setCursor(0, 2);

     lcd.print("Luftfeuchte: ");

     lcd.print((float)humidity);

     lcd.print("%");

     delay(2500); // DHT22 sampling rate is 0.5HZ.   

 delay(1000);             

Computer, Technik, programmieren, Arduino, Sensor, Arduino Uno

Meistgelesene Beiträge zum Thema Programmieren