我有一个问题,源于我的伙伴以不同于我的方式做事.
这样做更好:
try
{
...
}
catch (Exception ex)
{
...
throw;
}
Run Code Online (Sandbox Code Playgroud)
或这个:
try
{
...
}
catch (Exception ex)
{
...
throw ex;
}
Run Code Online (Sandbox Code Playgroud)
他们做同样的事情吗?这个比那个好吗?
我目前正在使用TcpListener来处理传入的连接,每个连接都有一个用于处理通信的线程,然后关闭该单个连接.代码如下:
TcpListener listener = new TcpListener(IPAddress.Any, Port);
System.Console.WriteLine("Server Initialized, listening for incoming connections");
listener.Start();
while (listen)
{
// Step 0: Client connection
TcpClient client = listener.AcceptTcpClient();
Thread clientThread = new Thread(new ParameterizedThreadStart(HandleConnection));
clientThread.Start(client.GetStream());
client.Close();
}
Run Code Online (Sandbox Code Playgroud)
该listen变量是一个布尔值,是在类的字段.现在,当程序关闭时,我希望它停止监听客户端.设置听false会阻止它承担更多的连接,但由于AcceptTcpClient是一个阻塞调用,它将在最低采取下一个客户端,然后退出.有没有办法迫使它简单地突破并停止,就在那时?调用listener.Stop()有什么影响,而另一个阻塞调用正在运行?