我正在尝试从此堆栈溢出问题转换C#代码以在VB.NET中使用。我正在使用.NET Framework 4.0。WPF wait window
这里是代码:
Thread thread = new Thread(() =>
{
Window1 w = new Window1();
w.Show();
w.Closed += (sender2, e2) =>
w.Dispatcher.InvokeShutdown();
System.Windows.Threading.Dispatcher.Run();
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
Dim thread As New Thread(Sub()
Dim w As New Window1()
w.Show()
AddHandler w.Closed, Sub(sender2, e2) w.Dispatcher.InvokeShutdown()
System.Windows.Threading.Dispatcher.Run()
End Sub)
thread.SetApartmentState(ApartmentState.STA)
thread.Start()
您可以在VB中创建lambda表达式,如下所示:
Dim thread As New Thread(Sub()
' ...
End Sub)
[VB.NET实际上没有像C#那样为匿名方法提供单独的语法,但是VB.NET中的lambda表达式的语法看起来更类似于C#匿名方法,而不是C#lambda表达式。
您可能想阅读Lambda Expressions in VB.NET
Dim threadSub = Sub()
...
End Sub
Dim thread As New Thread(threadSub)