Следующий код - C # и Windows Forms, и он окей.
Следующий код взят из этого видео на YouTube: Учебное пособие по C # - Заставка
namespace SplashScreen
{
public partial class frmMain : Form
{
public frmMain()
{
Thread t = new Thread(new ThreadStart(StartForm));
t.Start();
Thread.Sleep(5000);
InitializeComponent();
t.Abort();
}
public void StartForm()
{
Application.Run(new frmSplashScreen());
}
}
}
Следующий код VB.NET и Windows Forms, и это нормально.
Class MainWindow
Private Sub Button1_Click(sender As Object, e As RoutedEventArgs) _
Handles Button1.Click
Dim t As System.Threading.Thread = _
New System.Threading.Thread(AddressOf StartForm)
t.Start()
System.Threading.Thread.Sleep(5000)
t.Abort()
End Sub
Public Sub StartForm()
Application.Run(New frmSplashScreen)
End Sub
End Class
Я хочу преобразовать приведенный выше код в приложение VB.NET и WPF.
Необходимо исправить следующий код.
Class MainWindow
Private Sub Button1_Click(sender As Object, e As RoutedEventArgs) _
Handles Button1.Click
Dim t As System.Threading.Thread = _
New System.Threading.Thread(AddressOf StartForm)
t.Start()
System.Threading.Thread.Sleep(5000)
t.Abort()
End Sub
Public Sub StartForm()
Dim mySplashScreenWindow As New SplashScreenWindow()
mySplashScreenWindow.Owner = Me
mySplashScreenWindow.ShowDialog()
End Sub
End Class
Вот сообщение об ошибке:
Вызывающий поток должен быть STA, поскольку для многих компонентов пользовательского интерфейса требуется это.
Вот снимок экрана с ошибкой: https://prnt.sc/kumom7