问题标签 [autoresetevent]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1397 浏览

c# - 按下 AutoResetEvent 的 WaitOne() 后清除多个集合

在 C# 中点击of后是否需要调用reset清除多个集合?WaitOne();AutoResetEvent

0 投票
1 回答
941 浏览

c# - 在单元测试中设置 AutoResetEvent.WaitOne() 的方法

我正在为另一个开发人员编写的一些代码编写单元测试。有一次,开发人员对 WaitOne() 使用了 bool 语句。他将默认设置为 false,有没有办法将 WaitOne() 设置为 true 以进行单元测试?从我读到的关于 WaitOne 的内容来看,它与线程有关,我只是想先编写一个简单的单元测试以确保所写的内容有效?有谁知道在单元测试中我可以将 WaitOne 设置为 true 的方法?我查看了http://msdn.microsoft.com/en-us/library/cc190477.aspx上的文档。它提到当它收到一个信号时,它就是真的。可以以及如何使用单元测试来发送信号

0 投票
0 回答
906 浏览

c# - 尝试自动化 WebBrowser C# 时出现 InvalidCastException

基本上,我正在自动化一个具有 iframe 并且不会触发 DocumentComplete 的站点。我在一个独立的线程中运行一个表单,其中包含一个 WebBrowser。我正在尝试在 WebBrowser 中单击搜索,它可以正常工作,但我正在尝试将浏览器与表单线程分开,以便我可以使我的代码整体更具程序性并实现 AutoResetEvent。

点击搜索的方法如下:

这是调用它的代码:

该行:

给了我一个 InvalidCastException。此外,任何关于如何最好地做到这一点的建议将不胜感激,我想避免 Application.DoEvents(),我也希望它是更多的过程(我有很多事件附加和分离)。调用方法也在事件处理程序中运行,我想将它们放在同一个方法中,并实现等待以清理我的代码。

我之前遵循了本指南:http ://www.albahari.com/threading/part2.aspx 。

以下是异常详细信息,尽管它们没有提供太多帮助。

0 投票
1 回答
811 浏览

wpf - 等到后台工作人员完成而不锁定主线程

我试图让一个后台工作人员在主线程中运行一个微调器,我想等到后台工作人员完成。目前我可以有一个或另一个。我尝试使用自动重置事件,但它锁定了主线程,因此不显示微调器。是否有类似于自动重置事件的东西不会锁定主 UI。

这是我的一些代码

有任何想法吗?欢迎任何帮助!提前致谢。

0 投票
3 回答
1634 浏览

c# - C# 使用 AutoResetEvent 向两个线程发送信号


我需要使用两个线程创建一个计数为 10 的程序。
一个线程应该打印偶数,另一个应该打印奇数。
这些线程应按顺序打印数字(1、2、3、4、5...)

我已经完成了这段代码,但它似乎不起作用......有什么想法吗?

0 投票
1 回答
344 浏览

c# - 当我设置它时 AutoResetEvent 不会停止

AutoResetEvent如果花费太多时间,我正在尝试使用以进行操作或离开。

这是我正在运行的代码:

这是我的TimeoutAction课:

我预计它最多需要 1000 毫秒,因为它将在TimeoutAction1000 毫秒后发送信号。因此,即使该方法OuvrirDrawer需要 5 秒,我也应该在大约 1000 毫秒后到达我的 TODO 行。好吧,你猜怎么着,不是。

我的方法OuvrirDrawer是尝试打开我的钱箱,但是当它没有连接到我的电脑时,它就崩溃了。我放了一个空的按钮,但是当它试图打开它时,它需要一段时间(5 秒)。

使用上面的代码,我想在 1 秒时超时,我不想等待 5 秒才能看到我的现金抽屉没有连接。一秒钟就足够了。

0 投票
1 回答
1115 浏览

c# - 使用带有 WaitAny() 的 WaitHandles 数组

程序设置一个等待定时器。那部分工作正常。线程一直阻塞,直到定时器触发。我想做的是能够在其中一个 WaitHandles 上调用 .Set 以释放线程阻塞。似乎这段代码的编写方式 .Set 不可用,所以我现在已经注释掉了该行。我需要能够调用其中一个计时器以释放线程阻塞。有谁知道如何做到这一点?

我现在遇到的问题是我对 set 的调用以:

错误 1“System.Threading.WaitHandle”不包含“Set”的定义,并且找不到接受“System.Threading.WaitHandle”类型的第一个参数的扩展方法“Set”(您是否缺少 using 指令或程序集参考?) C:\Users\Eric\Documents\Visual Studio 2013\Projects\waitany\ConsoleApplication1\Program.cs 86 38 ConsoleApplication1

0 投票
2 回答
1463 浏览

c# - AutoResetEvent 阻止 BackgroundWorker 进度报告

我在我的应用程序中使用 BackgroundWorker。当 Backgroundworker 仍然很忙时,我可以显示进度条的变化。但是,当我使用 AutoResetEvent 等到 Backgroundworker 完成时,我没有看到进度条发生变化。有没有另一种方法,我可以等待 BackgroundWorker 完成并显示进度条更改?我对 C# 框架和编程很陌生。

0 投票
0 回答
60 浏览

c# - 等待句柄错误

我写了一个简单的生产者-消费者队列。处理安全句柄时不断抛出错误。

如果我将 wh.WaitOne() 更改为 else 部分,那么它开始工作

有人可以解释为什么会这样吗?

0 投票
1 回答
79 浏览

.net - 摆脱阻塞代码

我不确定我是否可以在这里很好地解释它,但让我试一试。下面的代码只是为了展示这个想法,因为我只是在这里输入它而不验证编译器中的所有内容。

我有一个方法(比如 Method1),我正在做两件事。1. 调用 Web 服务方法来执行操作。2. 之后,我轮询同一个 Web 服务对象以等待操作结果可用。

所以基本上如下所示。

然而,这种方法使 Method1 阻塞,直到轮询期间确定的操作结果可用。我想更改它,以便 Method1 的调用者可以在调用 Web 服务方法后立即返回,并且可以在 Web 服务结果可用后以某种方式发出信号。所以我想有一个 AutoResetEvent 对象作为我在轮询期间设置为信号状态的类成员。

使用这种方法,此 API 的用户只需调用立即返回的 Method1,他们就可以等待 autoEvent 得到信号。问题是在这种情况下谁会调用 Method2?