Я строй быстрого небольшого скрипта, чтобы принимать данные из приложения я создал для моего телефона и поместить его в текстовом поле и она прекрасно работает с этим кодом:гнездо потока выходит после отключения
private void workerVoid()
{
string receivedDataString = null;
listenSock.Listen(3);
acceptedSock = listenSock.Accept();
listenSock.Bind(new IPEndPoint(IPAddress.Any, 5665));
while(shouldRun)
{
while (listenSock.SendBufferSize != 0)
{
Buffer = new byte[listenSock.SendBufferSize];
int byteCount = acceptedSock.Receive(Buffer);
byte[] byteFormatted = new byte[byteCount];
for (int byteCounter = 0; byteCounter < byteCount; byteCounter++)
{
byteFormatted[byteCounter] = Buffer[byteCounter];
}
receivedDataString = Encoding.ASCII.GetString(byteFormatted);
setTextDelegate sTD = new setTextDelegate(setText);
reqFormVar.Invoke(sTD, new object[] { receivedDataString });
}
}
}
С workerVoid будучи нить. Опять же, это прекрасно работает, когда устройство, которое подключено (мой телефон) отключается, поток полностью перестает работать (я получаю поток .. вышел из визуальной студии), и мое устройство не может подключиться после этого, хотя у меня есть цикл while, который должен работать вечно.
Как это сделать, чтобы мое устройство снова подключалось после отсоединения без выхода потока?
Благодаря
Вы не включать любой код, который работает на переменной shouldRun. Установлено ли значение false где-то за пределами включенного кода, пока ваш поток выполняет итерацию во внутреннем цикле? –