在满足特定条件之前“阻止”的最佳方法

2024-01-02

我想创建一些以通用方式使用的方法,它会阻塞(除非某个超时到期),直到满足给定条件。

代码中的用法类似于:

WaitUntil( condition );

我尝试使用 While (..) 循环来实现它,但这似乎是一种浪费。

在当前的实现中,我正在初始化一个“一次性”计时器,该计时器在超时时到期。我正在运行一个 while 循环,并检查计时器是否超时,如果超时则抛出异常。

是否有任何简单而有效的技术来实现这种方法?


看一下Albahari 的线程文章 http://www.albahari.com/threading/,尤其是basic synchronization部分和手动重置事件 http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx and 自动重置事件 http://msdn.microsoft.com/en-us/library/system.threading.autoresetevent.aspx。这将使您对 .NET 中的信号构造有一个很好的了解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在满足特定条件之前“阻止”的最佳方法 的相关文章

  • 更改图像颜色与透明背景

    我需要使用 c System Drawings 将透明背景上带有绿色圆圈的图像加载到位图图像中 这是最简单的部分 但是 我需要在将其添加到更大的图像之前更改圆圈的颜色 而不影响周围的透明度 就我而言 我需要将圆圈颜色更改为黄色并将其添加为太
  • ASP.NET MVC - 临时要求除一页之外的整个站点授权的简单方法

    我正在建立一个混合了公共页面和会员专用页面的网站 登录系统按原样工作正常 不过 我想启动一个封闭的 仅限邀请的预览 并暂时要求访问者登录才能执行除欢迎页面之外的所有操作 目前我有 Authorize 某些操作方法的属性 我也可以向其他操作方
  • 析构函数与成员函数竞赛

    当我在析构函数内时 其他线程是否可能开始执行对象的成员函数 遇到这种情况该如何处理呢 C 没有内在的保护来防止在删除对象后使用它 忘记竞争条件 另一个线程可以在完全删除你的对象后使用你的对象 Either 确保只有一个位置 代码拥有该对象
  • C++ 并行任务的开销

    我有以下简单的功能 include
  • 更改实体的可访问性

    我想建立一个内部实体 我已将实体 其标量属性和导航属性更改为内部 当我尝试构建它时出现此错误 错误 6036 EntityType 文件 具有 内部 可访问性 EntitySet 文件 具有具有 公共 可访问性的 get 属性 Entity
  • 如何在Unity Inspector中创建多维数组?

    如何在 Unity Inspector 中创建枚举多维数组并使其可序列化 以便我可以从不同的脚本调用它 public enum colors red blue green yellow cyan white purple public in
  • 我如何知道向量的实际最大大小? (不使用 std::vector::max_size)

    在在线课程中 我正在学习向量 在其中一个例子中 他们解释说 std vector max size 应该给我向量可以达到的最大大小 我决定测试一下 include
  • 可以通过模板间接访问基类中的私有类型

    我试图在编译时根据类型是否在给定范围内公开可用来选择要使用的类型 最好直接看代码 include
  • FFplay成功移入我的Winform中,如何设置它无边框?

    用这个代码 在 C 应用程序中显示 tcp 视频流 来自 FFPLAY FFMPEG https stackoverflow com questions 14201894 show a tcp video stream from ffpla
  • 在 Linq 查询中使用动态列名称

    foreach Dimension dimensions in Enum GetValues typeof Dimension var r new ReferenceTable dimensions referenceItems List
  • 如何将输出重定向到 boost 日志?

    我有一个使用boost log的C 程序 我加载了用户提供的动态链接库 我想将 stderr 重定向到 boost 日志 以便用户的库随时执行以下操作 std cerr lt lt Some stuff 它产生相同的结果 BOOST LOG
  • 当分配返回 0 时,具有空异常规范的运算符 new 调用构造函数

    我有以下声明 void operator new size t s PersistentMemory m throw return m gt allocatePersistentMemory s 我正在测试启动时的内存耗尽 这会导致m gt
  • 检查 SSRS 报告自定义代码中的 Active Directory 组成员资格表单

    我正在构建 SQL Server Reporting Services SSRS 报告 查看报告的最终用户可以选择某些输入参数 在本例中为位置 用户可以选择的位置取决于 Active Directory 组成员身份 因此我尝试在自定义报告功
  • 从 AuthorizeAttribute 继承的属性不起作用

    我目前正在尝试根据用户角色在新的 ASP MVC 5 应用程序中实现安全性 目标是防止用户在没有特定角色 或更高角色 的情况下访问某些控制器或控制器方法 根据到目前为止我所读到的问题 我创建了一个继承 AuthorizeAttribute
  • .NET 或 Windows 同步原语性能规范

    我目前正在写一篇科学文章 我需要非常准确地引用 有人可以向我指出 MSDN MSDN 文章 一些已发表的文章来源或一本书 我可以在其中找到 Windows 或 NET 同步原语的性能比较 我知道这些是按性能降序排列的 互锁 API 关键部分
  • 在链表程序中使用模板时重载 C++ 中的 << 运算符

    我正在尝试实现一个链接列表 但是当我尝试重载 include
  • 如何使用 .NET 捕获我的桌面视频?

    我想知道是否有任何方法可以使用 NET 捕获我的桌面的视频 截屏视频 我并不是在寻找截屏软件 而只是在寻找一种可以让我自己生成桌面视频的技术 我想过拍摄多个屏幕截图 但我不确定如何以编程方式生成带有图像序列的视频 有人有主意吗 Thanks
  • 小数精度

    我使用小数类型进行高精度计算 货币 但我今天遇到了这个简单的划分 1 1 37 这应该再次得到 37 http www wolframalpha com input i 1 2F 281 2F37 29 http www wolframal
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin
  • 为什么 INT64_MIN 的定义不同?为什么他们的行为不同?

    The stdint h我公司的标题是 define INT64 MIN 9223372036854775808LL 但在我项目的一些代码中 一位程序员写道 undef INT64 MIN define INT64 MIN 92233720

随机推荐

  • 当 USB 连接时,如何从终端启动任何 iPhone 应用程序?

    在这种情况下 我被困在需要从终端启动任何 iPhone 应用程序的部分 很明显它是USB连接的 谁能帮我吗 我本人通过投入大量时间得到了我的问题的答案 首次获取标识符 ideviceinstaller l 其次复制您要启动的应用程序的标识符
  • 从 npm 脚本运行 babel-cli 不起作用

    我按照指示进行操作here https babeljs io docs setup babel cli安装babel cli 我添加了 build babel src d lib 到我想要运行它的目录中的 package json 但是 在
  • 在 Unity3D 中截图,无延迟

    我已经尝试过每个变体 http wiki unity3d com index php Scr eenCapture http wiki unity3d com index php ScreenCapture毕竟 简单的 Applicatio
  • UIView 移动时淡入和淡出

    为视图设置动画很容易 UIView animateWithDuration 1 0 animations theView center newCenter theView alpha 0 completion BOOL finished t
  • std::forward 是否有带有纯右值的用例?

    最常见的用法是std forward是为了完善转发转发 通用 参考 例如 template
  • 您是否将构建工具置于版本控制中?

    您是否将构建项目所需的工具置于版本控制之下 如果您这样做 您对包含哪些工具有什么指导原则 我猜没有人将 Visual Studio 置于版本控制中 但是您的单元测试运行程序怎么样 Ant And Maven 可执行文件 外部依赖怎么样 你们
  • Facebook 登录后 URL 中的尾随字符

    我正在通过 facebook 身份验证过程将我的用户登录到我的网站 用户登录后 我使用以下命令重定向到个人资料页面 resp sendRedirect l profile 但是当我进入个人资料页面时 URL 就结束了 profile 这似乎
  • 使用静态方法与实例化包含该方法的类的性能

    我正在开发一个 C 项目 以前的程序员不知道面向对象编程 因此大部分代码都在巨大的文件中 我们谈论的是大约 4 5000 行 分布在数十个甚至数百个方法中 但只有一个类 重构这样一个项目是一项艰巨的任务 所以我现在已经半学会了忍受它 每当在
  • angular2 rc4“XHR错误(404未找到)加载/traceur

    我将 angular2 从 RC2 迁移到 RC4 现在收到以下错误 localhost 36 Error Error XHR error 404 Not Found loading http localhost 3000 traceur
  • 隐藏 SEO 黑名单 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在使用回发对大量数据执行分页 由于我没有可供谷歌阅读的站点地图 因此谷歌永远不会知道某些产品 因为谷歌不会按任何按钮 如果用户代理是搜索引擎的用户
  • excepts.TypeError: src 不是 numpy 数组,也不是标量

    import cv2 import numpy as np def imageMoments img Single channel 8 bit or floating point 2D array read original cv2 imr
  • 调度操作以响应取消

    我从取消食谱 https redux observable js org docs recipes Cancellation html来自 redux observable 文档并希望对其进行一些扩展 基本上我有一个场景 在触发取消后 使用
  • 从unix文件中获取日期

    我想从 txt 文件中获取日期 如下所示 933 Mahinda Perera male 1989 12 03 2010 03 17T13 32 10 447 0000 192 248 2 123 Firefox 1129 Carmen L
  • 迭代计算不同长度

    我有一个 n 2 df 第一列是起始月份 第二列是每月回报 下面的示例 使用动物园包 日期以年月形式显示 我想计算从每个起始月份回报开始的 1 到 12 个月的回报 并使用它们创建一个 n 13 数据框 复合回报构成最后 12 列 第 2
  • 如何在 adb shell am start 的 URL 中包含 & 符号?

    Using adb shell am start some url 我可以使用活动管理器启动 URL 但是 如果我包含多个 URL 参数 则除第一个参数之外的所有参数都会被删除 Example adb shell am start http
  • 使用 Express 4.0 上传文件:req.files 未定义

    我试图获得一个与 Express 4 0 一起使用的简单文件上传机制 但我不断得到undefined for req files in the app post身体 这是相关代码 var bodyParser require body pa
  • Swift Xcode 索引冻结或缓慢

    也许这只是我经历的一个恼人的 功能 从 Xcode 6 0 1 升级到 Xcode 6 1 后 情况发生了变化 Xcode 6 1 永远索引项目或编译源文件 该工程规模并不大 它只包含工作区中的一堆 Swift 文件和 AWS SDK 2
  • 用美元符号替换 javascript regexp 匹配组

    这个应该很简单 让我们看一下字符串 str 1 99 or 4 89 我想在金额前面添加一个美元符号 我试过 str replace d d d g 1 它给了我 1 或 1 所以我坚持做 str replace d d d g 1 rep
  • spring中没有默认构造函数的类的bean类实例化

    我在模型中使用第三方库类 XYZ 作为参数 XYZ 没有默认构造函数 所以 spring 无法为其创建 bean 给出错误消息 org springframework web util NestedServletException Requ
  • 在满足特定条件之前“阻止”的最佳方法

    我想创建一些以通用方式使用的方法 它会阻塞 除非某个超时到期 直到满足给定条件 代码中的用法类似于 WaitUntil condition 我尝试使用 While 循环来实现它 但这似乎是一种浪费 在当前的实现中 我正在初始化一个 一次性