一键重装系统工具 | U盘启动盘制作工具 | 误删文件恢复软件 | 硬盘数据抢救专家 | 电脑蓝屏修复助手 | C盘空间清理神器 | 电脑驱动离线安装工具 | 微信聊天记录恢复工具 | 照片误格式化恢复 | 电脑密码破解清除工具 | 系统崩溃紧急救援盘 | 电脑加速优化大师 | 电脑开不了机怎么重装系统 | 回收站清空了怎么恢复 | 硬盘分区丢失数据恢复 | 电脑卡顿重装系统有用吗 | U盘插入提示格式化数据恢复 | 电脑中毒文件被隐藏恢复 | 忘记电脑开机密码怎么办 | 新硬盘分区对齐工具 | 旧电脑装Win10流畅工具 | SD卡照片删除恢复免费版 | 移动硬盘打不开提示损坏修复 | 电脑无故重启系统修复工具 | 电脑小白一键重装神器 | 程序员电脑环境配置助手 | 设计师电脑字体/素材恢复工具 | 网吧网管系统维护工具箱 | 财务人员电脑发票备份恢复 | 学生党免费电脑系统安装包 | 电脑维修师傅必备工具盘 | 游戏玩家电脑性能优化助手 | 办公白领误删文档恢复软件 | 自媒体视频素材恢复工具 | 网课录制视频损坏修复工具 | 最好的U盘PE系统排名 | 数据恢复软件哪个最强 | 免费电脑助手与收费版区别 | 国产装机工具哪款无广告 | 离线版驱动助手推荐 | 轻量级电脑优化工具对比 | 支持NVMe驱动的PE工具 | 带网络功能的应急启动盘 | 2026最新版万能装机工具 | 支持Win11 24H2的PE工具 | 最新免激活系统重装工具 | 2026数据恢复软件破解版合集 | 纯净无捆绑装机助手V3.0 | 支持苹果M芯片的电脑助手 | 秋季更新版系统维护工具箱 | 电脑系统崩了怎么用U盘把重要资料拷贝出来 | 重装系统前哪些文件夹必须备份 | 固态硬盘误格式化还能恢复数据吗 | 如何制作一个既带PE又能存数据的双分区U盘 | 电脑总是弹窗广告用什么助手彻底拦截 后台管理
📢 欢迎访问系统之家!所有资源均经过安全检测。

WaitHandle.WaitOne Method (System.Threading)

发布时间:2026-09-10 | 浏览:1
📥 下载地址(文章开头)
装机神器,一键装机,安装任何系统。纯净版,原版,软件版,精简版,英文版。
Access to this page requires authorization. You can try signing in or changing directories . Access to this page requires authorization. You can try changing directories . Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here. Blocks the current thread until the current WaitHandle receives a signal. Blocks the current thread until the current WaitHandle receives a signal. Blocks the current thread until the current WaitHandle receives a signal, using a 32-bit signed integer to specify the time interval in milliseconds. Blocks the current thread until the current instance receives a signal, using a TimeSpan to specify the time interval. Blocks the current thread until the current WaitHandle receives a signal, using a 32-bit signed integer to specify the time interval and specifying whether to exit the synchronization domain before the wait. Blocks the current thread until the current instance receives a signal, using a TimeSpan to specify the time interval and specifying whether to exit the synchronization domain before the wait. Blocks the current thread until the current WaitHandle receives a signal. true if the current instance receives a signal. If the current instance is never signaled, WaitOne() never returns. The current instance has already been disposed. The wait completed because a thread exited without releasing a mutex. The current instance is a transparent proxy for a WaitHandle in another application domain. The following code example shows how to use a wait handle to keep a process from terminating while it waits for a background thread to finish executing. AbandonedMutexException is new in the .NET Framework version 2.0. In previous versions, the WaitOne method returns true when a mutex is abandoned. An abandoned mutex often indicates a serious coding error. In the case of a system-wide mutex, it might indicate that an application has been terminated abruptly (for example, by using Windows Task Manager). The exception contains information useful for debugging. The caller of this method blocks indefinitely until the current instance receives a signal. Use this method to block until a WaitHandle receives a signal from another thread, such as is generated when an asynchronous operation completes. For more information, see the IAsyncResult interface. Calling this method overload is equivalent to calling the WaitOne(Int32, Boolean) method overload and specifying -1 or Timeout.Infinite for the first parameter and false for the second parameter. Override this method to customize the behavior of derived classes. Blocks the current thread until the current WaitHandle receives a signal, using a 32-bit signed integer to specify the time interval in milliseconds. The number of milliseconds to wait, or Infinite (-1) to wait indefinitely. true if the current instance receives a signal; otherwise, false . The current instance has already been disposed. millisecondsTimeout is a negative number other than -1, which represents an infinite time-out. The wait completed because a thread exited without releasing a mutex. The current instance is a transparent proxy for a WaitHandle in another application domain. The following code example shows how to use a wait handle to keep a process from terminating while it waits for a background thread to finish executing. If millisecondsTimeout is zero, the method does not block. It tests the state of the wait handle and returns immediately. The caller of this method blocks until the current instance receives a signal or a time-out occurs. Use this method to block until a WaitHandle receives a signal from another thread, such as is generated when an asynchronous operation completes. For more information, see the IAsyncResult interface. Override this method to customize the behavior of derived classes. Calling this method overload is the same as calling the WaitOne(Int32, Boolean) overload and specifying false for exitContext . WaitOne(TimeSpan) Blocks the current thread until the current instance receives a signal, using a TimeSpan to specify the time interval. A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. true if the current instance receives a signal; otherwise, false . The current instance has already been disposed. timeout is a negative number other than -1 milliseconds, which represents an infinite time-out. timeout is greater than Int32.MaxValue . The wait completed because a thread exited without releasing a mutex. The current instance is a transparent proxy for a WaitHandle in another application domain. If timeout is zero, the method does not block. It tests the state of the wait handle and returns immediately. The caller of this method blocks until the current instance receives a signal or a time-out occurs. Use this method to block until a WaitHandle receives a signal from another thread, such as is generated when an asynchronous operation completes. For more information, see the IAsyncResult interface. Override this method to customize the behavior of derived classes.
📥 下载地址(文章中间)
装机神器,一键装机,安装任何系统。纯净版,原版,软件版,精简版,英文版。
The maximum value for timeout is Int32.MaxValue . Calling this method overload is the same as calling the WaitOne(TimeSpan, Boolean) overload and specifying false for exitContext . WaitOne(Int32, Boolean) Blocks the current thread until the current WaitHandle receives a signal, using a 32-bit signed integer to specify the time interval and specifying whether to exit the synchronization domain before the wait. The number of milliseconds to wait, or Infinite (-1) to wait indefinitely. true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it afterward; otherwise, false . true if the current instance receives a signal; otherwise, false . The current instance has already been disposed. millisecondsTimeout is a negative number other than -1, which represents an infinite time-out. The wait completed because a thread exited without releasing a mutex. The current instance is a transparent proxy for a WaitHandle in another application domain. The following example shows how the WaitOne(Int32, Boolean) method overload behaves when it is called within a synchronization domain. First, a thread waits with exitContext set to false and blocks until the wait timeout expires. A second thread executes after the first thread terminates and waits with exitContext set to true . The call to signal the wait handle for this second thread is not blocked, and the thread completes before the wait timeout. If millisecondsTimeout is zero, the method does not block. It tests the state of the wait handle and returns immediately. If a mutex is abandoned, an AbandonedMutexException is thrown. An abandoned mutex often indicates a serious coding error. In the case of a system-wide mutex, it might indicate that an application has been terminated abruptly (for example, by using Windows Task Manager). The exception contains information useful for debugging. The caller of this method blocks until the current instance receives a signal or a time-out occurs. Use this method to block until a WaitHandle receives a signal from another thread, such as is generated when an asynchronous operation completes. For more information, see the IAsyncResult interface. Override this method to customize the behavior of derived classes. Exiting the context The exitContext parameter has no effect unless this method is called from inside a nondefault managed context. The managed context can be nondefault if your thread is inside a call to an instance of a class derived from ContextBoundObject . Even if you're currently executing a method on a class that isn't derived from ContextBoundObject , like String , you can be in a nondefault context if a ContextBoundObject is on your stack in the current application domain. When your code is executing in a nondefault context, specifying true for exitContext causes the thread to exit the nondefault managed context (that is, to transition to the default context) before executing this method. The thread returns to the original nondefault context after the call to this method completes. Exiting the context can be useful when the context-bound class has the SynchronizationAttribute attribute. In that case, all calls to members of the class are automatically synchronized, and the synchronization domain is the entire body of code for the class. If code in the call stack of a member calls this method and specifies true for exitContext , the thread exits the synchronization domain, which allows a thread that's blocked on a call to any member of the object to proceed. When this method returns, the thread that made the call must wait to reenter the synchronization domain. WaitOne(TimeSpan, Boolean) Blocks the current thread until the current instance receives a signal, using a TimeSpan to specify the time interval and specifying whether to exit the synchronization domain before the wait. A TimeSpan that represents the number of milliseconds to wait, or a TimeSpan that represents -1 milliseconds to wait indefinitely. true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it afterward; otherwise, false . true if the current instance receives a signal; otherwise, false . The current instance has already been disposed. timeout is a negative number other than -1 milliseconds, which represents an infinite time-out. timeout is greater than Int32.MaxValue . The wait completed because a thread exited without releasing a mutex. The current instance is a transparent proxy for a WaitHandle in another application domain. The following code example shows how to use a wait handle to keep a process from terminating while it waits for a background thread to finish executing. If timeout is zero, the method does not block. It tests the state of the wait handle and returns immediately. If a mutex is abandoned, an AbandonedMutexException is thrown. An abandoned mutex often indicates a serious coding error. In the case of a system-wide mutex, it might indicate that an application has been terminated abruptly (for example, by using Windows Task Manager). The exception contains information useful for debugging. The caller of this method blocks until the current instance receives a signal or a time-out occurs. Use this method to block until a WaitHandle receives a signal from another thread, such as is generated when an asynchronous operation completes. For more information, see the IAsyncResult interface. Override this method to customize the behavior of derived classes. The maximum value for timeout is Int32.MaxValue . Exiting the context The exitContext parameter has no effect unless this method is called from inside a nondefault managed context. The managed context can be nondefault if your thread is inside a call to an instance of a class derived from ContextBoundObject . Even if you're currently executing a method on a class that isn't derived from ContextBoundObject , like String , you can be in a nondefault context if a ContextBoundObject is on your stack in the current application domain. When your code is executing in a nondefault context, specifying true for exitContext causes the thread to exit the nondefault managed context (that is, to transition to the default context) before executing this method. The thread returns to the original nondefault context after the call to this method completes. Exiting the context can be useful when the context-bound class has the SynchronizationAttribute attribute. In that case, all calls to members of the class are automatically synchronized, and the synchronization domain is the entire body of code for the class. If code in the call stack of a member calls this method and specifies true for exitContext , the thread exits the synchronization domain, which allows a thread that's blocked on a call to any member of the object to proceed. When this method returns, the thread that made the call must wait to reenter the synchronization domain. Was this page helpful? Need help with this topic? Want to try using Ask Learn to clarify or guide you through this topic?
📥 下载地址(文章结尾)
装机神器,一键装机,安装任何系统。纯净版,原版,软件版,精简版,英文版。