From 566f056149267c287502c07b5ea9a50f288e533b Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Sun, 21 May 2023 16:30:05 +0800 Subject: [PATCH] use Task.Delay instead of Thread.Sleep --- v2rayN/PacLib/PacHandler.cs | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/v2rayN/PacLib/PacHandler.cs b/v2rayN/PacLib/PacHandler.cs index 5806d47169..2e32f1f7f7 100644 --- a/v2rayN/PacLib/PacHandler.cs +++ b/v2rayN/PacLib/PacHandler.cs @@ -2,7 +2,6 @@ using System.IO; using System.Net.Sockets; using System.Text; -using System.Threading; using System.Threading.Tasks; namespace PacLib; @@ -50,7 +49,7 @@ private static void RunListener() _tcpListener = TcpListener.Create(_pacPort); _isRunning = true; _tcpListener.Start(); - Task.Factory.StartNew(() => + Task.Factory.StartNew(async () => { while (_isRunning) { @@ -58,25 +57,25 @@ private static void RunListener() { if (!_tcpListener.Pending()) { - Thread.Sleep(10); + await Task.Delay(10); continue; } var client = _tcpListener.AcceptTcpClient(); - Task.Run(() => - { - var stream = client.GetStream(); - var sb = new StringBuilder(); - sb.AppendLine("HTTP/1.0 200 OK"); - sb.AppendLine("Content-type:application/x-ns-proxy-autoconfig"); - sb.AppendLine("Connection:close"); - sb.AppendLine("Content-Length:" + Encoding.UTF8.GetByteCount(_pacText)); - sb.AppendLine(); - sb.Append(_pacText); - var content = Encoding.UTF8.GetBytes(sb.ToString()); - stream.Write(content, 0, content.Length); - stream.Flush(); - }); + await Task.Run(() => + { + var stream = client.GetStream(); + var sb = new StringBuilder(); + sb.AppendLine("HTTP/1.0 200 OK"); + sb.AppendLine("Content-type:application/x-ns-proxy-autoconfig"); + sb.AppendLine("Connection:close"); + sb.AppendLine("Content-Length:" + Encoding.UTF8.GetByteCount(_pacText)); + sb.AppendLine(); + sb.Append(_pacText); + var content = Encoding.UTF8.GetBytes(sb.ToString()); + stream.Write(content, 0, content.Length); + stream.Flush(); + }); } catch (Exception e) {