Я пытаюсь обновить форму интерфейса другого класса, который находится внутри потока.
Соответствующий код:
MainWindow.xaml.cs
private void encryptButtonPressed(object sender, RoutedEventArgs e)
{
if (checkValues() == true)
{
updateConsole("Starting Encryption...");
Thread encryptThread = new Thread(encrypt);
encryptThread.Start();
}
}
функция шифрования
public void encrypt()
{
Encrypt encrypt = new Encrypt(this.KeyFileContent, this.SourcePath, this.DestinationPath, this);
encrypt.start();
}
обновление функции консоли
public void updateConsole(String text)
{
consoleWindow.AppendText(Environment.NewLine);
consoleWindow.AppendText(text);
consoleWindow.ScrollToEnd();
}
Encrypt.cs
public byte[] key;
public String source;
public String destination;
public MainWindow mainWindow;
public Encrypt(byte[] key, String source, String destination, MainWindow mainWindow)
{
this.key = key;
this.source = source;
this.destination = destination;
this.mainWindow = mainWindow;
}
функция запуска
public void start()
{
mainWindow.updateConsole("Updating form thread");
}
Я пытался
Dispatcher.Invoke(() =>
{
mainWindow.updateConsole("Updating form thread");
});
но бесполезно.