У меня есть ошибка при открытии окна и закрытии другого.C# WPF InvalidOperationException был необработанным
The calling thread must be STA, because many UI components require this.
Я использую RedCorona Sockets ... http://www.redcorona.com/Sockets.cs Вот код ...
public partial class MainWindowThingy : Window
{
public ClientInfo client;
public MainWindowThingy() //The Error appears here
{
InitializeComponent();
StartTCP();
}
public void StartTCP()
{
Socket sock = Sockets.CreateTCPSocket("localhost", 2345);
client = new ClientInfo(sock, false); // Don't start receiving yet
client.OnReadBytes += new ConnectionReadBytes(ReadData);
client.BeginReceive();
}
void ReadData(ClientInfo ci, byte[] data, int len)
{
string msg = (System.Text.Encoding.UTF8.GetString(data, 0, len));
string[] amsg = msg.Split(' ');
switch (amsg[0])
{
case "login":
if (bool.Parse(amsg[1]) == true)
{
MainWindowThingy SecondWindow = new MainWindowThingy();
Login FirstWindow = new Login();
SecondWindow.Show();
FirstWindow.Close(); //It starts here, the error...
}
else
{
}
break;
}
}
}
}
Основном, он дает мне ошибку в "общественном контроле()" При закрытии Первая форма ...
Ммм ... Я хочу, чтобы открыть другую форму и закрыть другой ... поясню
Edit: Изменено Название класса ...
Вы называете это фоновой нитью? –
Не называйте свое окно «Управление». Это уже класс в .NET Framework и будет только создавать проблемы дальше по дороге. – nvoigt
Я так думаю ... Но я не знаю, как использовать рассеиватель на этом ... Можете ли вы привести мне пример? – user2993512