var options = new ParallelOptions
{
    MaxDegreeOfParallelism = 8,
    CancellationToken = cancellationToken
};
await Parallel.ForEachAsync(endpoints, options,
    async (endpoint, token) =>
    {
        var result = await ProbeAsync(endpoint, target, token);
        observations.Add(result);
    });

Har bir so'nggi nuqta uchun alohida vazifa ishga tushirish o'rniga cheklangan ishchilar hovuzidan foydalaning. Ruxsat etilgan ommaviy maqsadlarga qarshi tekshiruvlarda bepul proksi ro'yxati nomzod qatorlarni beradi; zondni qurishda har bir yozuvning protokolini saqlang. Ushbu .NET rejalashtirish fragmenti proksini taniydigan ProbeAsync va oqimlarga xavfsiz observations to'plagichni nazarda tutadi. Sakkiz — misoliy chegara, o'lchangan optimum emas. Zondga hali ham har bir urinish uchun cheklov va butun ishni bekor qilish kerak.

Tugatish tartibi boshqacha bo'lsa ham, har bir tugallangan natijani kirish ma'lumotlari bilan birga saqlang. Protokol, so'nggi nuqta, maqsad, usul, o'tgan vaqt va natijani yozing. Ulanish nosozligi, proksiga kirish rad etilishi, rad etilgan CONNECT va saytdan olingan javob turlicha kuzatishlardir.

TCP portining ochilishi proksi bilan kelishuvni isbotlamaydi. Proksi manzilini sayt sifatida olish ham uni maqsadni so'rash uchun ishlatishdan farq qiladi.

Maqsad va usulni talab qilinadigan imkoniyatga qarab tanlang. HEAD tana trafigini tejaydi, lekin GET foydali kontent qaytarishini isbotlamaydi; sayt birini rad etib, ikkinchisiga ruxsat berishi mumkin. HTTPS oddiy HTTP da yo'q CONNECT va manzil TLS ni qo'shadi. Chiqish manzili sozlangan kirishdan ajralgan, manzil tomonidagi yana bir kuzatishdir.

Cheklangan ish tekshiruvchining marshrutni baholashdan oldin o'z soketlari, xotirasi yoki rejalashtirgichini tugatishini oldini oladi. Bosqichma-bosqich natija bitta muvaffaqiyatli manzil so'nggi nuqtani har joyda yaxshi qiladi deb ko'rsatmasdan, tanlov siyosati uchun foydali bo'lib qoladi.

O'xshash maqolalar