@DerilH

Socket разрывает соединение при движении мышкой, как решить?

Здравствуйте! Есть такой код(WPF проект):
public partial class MainWindow : Window
    {
        IPAddress iP;
        int port = 8005;

        public MainWindow()
        {
            InitializeComponent();
        }

        private void EnterIP_Click(object sender, RoutedEventArgs e)
        {
            iP = IPAddress.Parse(IPAddressB.Text);

            ConnectToServer();
        }

        void  ConnectToServer() 
        {
            new Thread(() => {
                try
                {

                    Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    socket.Connect(new IPEndPoint(iP, port));
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    MessageBox.Show(ex.Message);
                }
            }).Start();
        }
    }

Когда я двигаю мышкой в окне приложения то сокет разрывает подключение, если делать что-то вне окна то сокет работает. Оставлял пк на 15 минут и проблем не было, но как подвигал мышкой то соединение прервалось. Никак не могу понять как мышка влияет на Socket который к тому же в другом потоке. Прошу помощи!
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
@none7
Именно в таком варианте, поток сразу после коннекта завершается. Что происходит с объектом(Socket) ссылка на который теряется? Он становится мусором и уничтожается когда сборщик мусора соизволит запуститься. В Вашем случае он запускается при действиях с WPF.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы