gpt4 book ai didi

c# - 如果您只是在之后立即调用 End,为什么还要调用 WaitOne? End 不阻塞吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:31:57 31 4
gpt4 key购买 nike

试图理解this MSDN sample但我对这些行感到困惑:

IAsyncResult result = Dns.BeginGetHostEntry(args[0], null, null);
Console.WriteLine("Processing request for information...");
// Wait until the operation completes.
result.AsyncWaitHandle.WaitOne();
// The operation completed. Process the results.
try
{
// Get the results.
IPHostEntry host = Dns.EndGetHostEntry(result);

例如,如果您只是要阻塞线程直到任务完成,为什么还要使用异步编程?另外,调用 WaitOne 有什么好处?在操作完成之前,End 函数不会自动阻塞吗?

这里很困惑..

最佳答案

是的,EndGetHostEntry 会阻塞,直到操作完成。老实说,我怀疑这只是一个不好的例子 - 可能它试图向您展示等待操作完成的两种不同方式,但将它们放在同一个例子中只会增加困惑。

同样,如果它包含“//在这里做更多工作”或类似的评论,它肯定会更有用。

听起来您对 API 的理解还不错,您可能应该忽略该示例 - 或者在底部的“用户内容”部分添加注释以提及所有这些内容。

关于c# - 如果您只是在之后立即调用 End,为什么还要调用 WaitOne? End 不阻塞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7480689/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com