为什么Socket.BeginAccept()在Windows XP中有效,但微软则说不然?

时间:2014-12-20 19:43:44

标签: c# windows

我正在一个项目上实现一些套接字操作,偶然发现了Socket.BeginAccept(),我发现它很方便并且使用得非常愉快,甚至没有检查其支持平台的官方文档。但是,在部署之后,我通过此功能学习了Windows XP is not included in the list of platforms supported。然而它完美地运作。

将其与支持SP3 of Windows XPThread.Join()进行比较,如果在Windows XP上执行Thread.Join(),则只需60秒即可获得良好的系统挂起。 SP3。这表明Thread.Join()方法遵循其记录的平台规范,而Socket.BeginAccept()没有(因为后者适用于Windows XP> = SP2,而其官方文档甚至根本不支持Windows XP)。 / p>

现在我对Windows XP支持的内容感到困惑。

3 个答案:

答案 0 :(得分:7)

您链接到.NET 4.5版本的文档。不适用于XP 4.0的.NET版本是最后一个仍然可以在XP或Server2003上运行的版本。使用MSDN文章顶部的版本选择器,您会看到4.0 version of the same article 列出XP和2003。

MSDN确实偶尔会出现错误,但这不是其中之一。

答案 1 :(得分:2)

老兄,认真的?

Microsoft于2014年4月8日停止支持Windows XP(这是在将支持期延长至少一次之后)。

他们不会花时间远离其他项目,只是为了测试和记录平台上是否支持API,根据定义, nothing 是否受支持。即使过去确实存在该文档,维护它也需要成本。该平台不受支持; Microsoft没有义务永久保存该文档。

如果您选择运行不受支持的操作系统,那么您不会得到错误修正,您没有获得安全补丁,您也无法获得新软件可以正常运行的保证,而且您不会# 39;获得准确文件的保证。那是什么"不支持"意味着:它可能仍然可以使用,但是如果您选择使用它,那么您可以自己动手。

XP 死了,男人。做你的悲伤并继续前进。

答案 2 :(得分:1)

您正在查看.NET 4.5的文档,never supported Windows XP。 .NET 4.5在.NET 4.5发布时仍然支持,但.NET 4.5需要Windows Vista或更高版本。

如果您使用下拉菜单查看corresponding page for .NET 4,则XP会列为支持。

然而,正如乔在他的回答中正确指出的那样,无法保证任何特定的文档仍然包含有关Windows XP支持的信息。在这种情况下,它仍然可以,但如果由于某些其他原因更新该页面,将来可能会将其删除。