2012-03-12 3 views
1

Простой вопрос: Как это перевести на VB.NetПреобразование лямбда-выражения в Dispatcher.Invoke

Dispatcher.BeginInvoke(() => listening = false); 

прослушивания является переменной в классе (логическое). Конвертеры в Интернете не помогли и то, что мы придумали, не скомпилировалось:

Dispatcher.BeginInvoke(Function(listening) listening = False) 

Любая помощь была бы оценена.

+0

Это будет либо не компилируется в C#, поэтому, пожалуйста, напишите полную строку. –

+0

@TimSchmelter: apparantly); поскользнулся, исправлено сейчас – Terry

ответ

3

В C# лямбда, как:

() => listening = false 

пустые скобки означает, что лямбда не принимает никаких параметров. А поскольку Dispatcher.BeginInvoke принимает Действие, не имеющее возвращаемого значения, в VB это будет Sub, а не Function:

Sub() listening = False 

так что вам придется:

Dispatcher.BeginInvoke(Sub() listening = False) 
+0

работал как шарм! – Terry

+0

Рад это услышать. –

Смежные вопросы