Не знаю как правильно выполнить запрос на сервере

Пробую отправить цвета с клиента на сервер по нажатию кнопки, чтобы поменять цвет элемента на сервере.
Возникает ошибка: "Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток" и не могу понять, как решить можно такую задачу.

Отправка с клиента на сервер:

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);
            }
        }
    }

Ответы (0 шт):