我需要一些关于程序中线程的指针

本文关键字:程序 线程 指针 于程序 | 更新日期: 2023-09-27 18:21:09

我正在尝试创建一个应用程序,它可以单独扫描给定IP地址的端口,如下所示:

private void ScanPort(IPAddress address, int port)
{
    using (TcpClient client = new TcpClient())
    {
        IAsyncResult result = client.BeginConnect(address, port, null, null);
        if (result.AsyncWaitHandle.WaitOne(1000, false)) txtDisplay.AppendText("Port: " + nudFrom.Value.ToString() + " is open." + Environment.NewLine);
        else txtDisplay.AppendText("Port: " + nudFrom.Value.ToString() + " is closed." + Environment.NewLine);
    }
}

现在,用这个代码扫描IP需要一些时间,尤其是如果我有100多个端口要扫描的话。

我想研究线程。问题是,我对如何使用线程有点茫然,但我确实读过MSDN上的一些文章或其他介绍如何进行基本线程的文章。

现在,我不知道如何在程序中实现线程。我可以创建一个指向我的ScanPort方法的事件处理程序,但如果我初始化了一个或多个线程,它就会从端口的开头开始ping。另一个问题是我应该启动多少个线程。

你明白这个主意吗?我需要一些关于如何在程序中实现线程的基本想法。

我需要一些关于程序中线程的指针

在.Net中,单线程程序可以通过多种方式变成多线程程序。如果你有兴趣在.Net中学习线程机制,那么这可能是一个很好的机会,但正如其他人所建议的那样,在.Net中寻找多线程的用途本身并不完全是一项有价值的活动。如果不将并行性和/或并发性混合在一起,编程就足够困难了。

如果你想研究.Net中的多线程,你需要阅读以下内容:

System.Threading.Thread

System.Threading.Threadpool

其他方法。。。