У меня есть приложение, которое закрывается. Когда я закрываю приложение, оно пытается выделить несколько потоков, которые выполняют сканирование TCP, попытки WCF P2P и т. Д. Проблема заключается в потоке WCF, который останавливается на методе в течение 17 секунд.
IP2PAuthenticationService server;
ChannelFactory<IP2PAuthenticationService> channelFactory;
channelFactory = new ChannelFactory<IP2PAuthenticationService>(binding, endpointAddress);
server = channelFactory.CreateChannel();
string result = server.SendMyDetails(myContract, "foo");
Так что все это происходит внутри потока. Когда форма закрывается, она пытается избавиться от нити
if (prospectCrawlerThread != null)
{
prospectCrawlerThread.Abort();
//prospectCrawlerThread.Join();
prospectCrawlerThread = null;
}
Я подтвердил это, раскомментировав .Join()
, а также приостановив отладку и увидев потоки, которые все еще работают.
Какой лучший способ избавиться от этой темы?
Редактировать: установка нити в фон, казалось, делала это быстрее
prospectCrawlerThread.IsBackground = true;