У меня есть программа, которая проверяет изменения в файле, а затем, после изменения файла, она считывает его и обновляет некоторые метки. «Однако он падает, потому что я пытаюсь изменить элементы в потоке из другого потока» ~ Или так я думаю. Есть идеи?Элементы Access Form1 из filesystemeventhandler
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Windows.Forms;
using System.IO;
using System.Threading.Tasks;
namespace RoomAutomation
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void readfile_Click(object sender, EventArgs e)
{
string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Dandrews\control.txt");
FileSystemWatcher fsw = new FileSystemWatcher();
fsw.Path = @"C:\Users\Dandrews\";
fsw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite |
NotifyFilters.DirectoryName | NotifyFilters.FileName;
fsw.Changed += new FileSystemEventHandler(OnChanged);
fsw.EnableRaisingEvents = true;
if (lines[0] == "1:lights")
{
Lights.Text = "Lights are on.";
}
if (lines[0] == "0:lights")
{
Lights.Text = "Lights are off.";
}
if (lines[1] == "1:camera")
{
Camera.Text = "Camera is on.";
}
if (lines[1] == "0:camera")
{
Camera.Text = "Camera is off.";
}
if (lines[2] == "1:speakers")
{
Speakers.Text = "Speakers are on.";
}
if (lines[2] == "0:speakers")
{
Speakers.Text = "Speakers are off.";
}
if (lines[3] == "1:playlist")
{
Playlist.Text = "Playlist is on.";
}
if (lines[3] == "0:playlist")
{
Playlist.Text = "Playlist is off.";
}
}
private void OnChanged(object source, FileSystemEventArgs e)
{
Console.Write("Changes");
//Lights.Text = "New label Text";
}
}
}
`
Какое исключение вы получаете? И * почему * вы ставили кавычки вокруг вашего вопроса? –
@ M.Babcock Да, я заметил, что я быстро прочитал код, чтобы удалить свой комментарий, прежде чем я увидел, что вы ответили на него. :) – warbio
Первое исключение исключения типа «System.InvalidOperationException» произошло в System.Windows.Forms.dll Программа «[6316] RoomAutomation.vshost.exe: Managed (v4.0.30319)» вышла с кодом 0 (0x0). Цитаты вокруг того, что я считаю проблемой. :) – Dandrews