Winforms к преобразованию WPF: BeginInvoke, к какой?

Вы можете сделать ./(name of exe) < input.txt

, и если вы хотите записать вывод в текстовый файл, вы можете сделать:

./ (имя exe)> output.txt

10
задан mmr 16 April 2009 в 22:55
поделиться

2 ответа

Я думаю, вам нужно изменить подпись делегата:

ValueLabel.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate(invalue1, invalue2){
    ValueLabel.Content = ...

Также ищите, используя компонент BackgroundWorker. Не только для wpf, но и для асинхронных операций winform.

5
ответ дан 3 December 2019 в 21:23
поделиться

System.Windows.Forms.MethodInvoker - это просто делегат, который не принимает параметров и возвращает void. В WPF вы можете просто заменить его на System.Action . Есть также другие встроенные делегаты, которые принимают параметры , возвращают значения или оба .

В вашем случае

ValueLabel.Dispatcher.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate {
            ValueLabel.Content = (inValue1* inValue2/ 1000).ToString("f1");
        }));

становится

ValueLabel.Dispatcher.BeginInvoke(new Action(delegate() {
            ValueLabel.Content = (inValue1* inValue2/ 1000).ToString("f1");
        }));
12
ответ дан 3 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: