Не знаю как правильно выполнить запрос на сервере
Пробую отправить цвета с клиента на сервер по нажатию кнопки, чтобы поменять цвет элемента на сервере.
Возникает ошибка:
"Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток" и не могу понять, как решить можно такую задачу.
Отправка с клиента на сервер:
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1005);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
string color;
socket.Connect(ipPoint);
string color = "Green";
byte[] buffer = Encoding.ASCII.GetBytes(color);
socket.Send(buffer);
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Сервер:
public partial class ViewWindow : Window
{
public ViewWindow()
{
InitializeComponent();
Thread myThread = new Thread(new ThreadStart(Server));
myThread.Start();
}
void Server()
{
IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1005);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
socket.Bind(ipPoint);
socket.Listen(1);
while (true)
{
Socket client = socket.Accept();
int bytes = 0;
byte[] buffer = new byte[256];
bytes = client.Receive(buffer);
string msg = Encoding.ASCII.GetString(buffer).TrimEnd('\0');
var convert = new BrushConverter();
Brush color = (Brush)convert.ConvertFromString(msg);
//Установить новый цвет элемента
element.Fill = color;
client.Shutdown(SocketShutdown.Both);
client.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}