问题标签 [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 投票
2 回答
968 浏览

c# - C# AutoResetEvent WaitOne 被调度程序停止

如果您注释掉两个 grdMain.Dispatcher.Invoke(...);,上面的代码就可以完美运行。如果您注释掉 *.Set(); ,它也可以正常工作。和 *.WaitOne(); 但是为什么?我两个都需要^^。我不明白...

0 投票
1 回答
8192 浏览

c# - 使用 AutoResetEvent.WaitOne() 和 .Set() 暂停后台线程

我有以下代码。我正在尝试制作可以暂停、继续和停止下载器正在运行的后台线程的主窗体按钮(私有线程线程)

Form1.cs

此代码在 Windows 窗体上运行。我有所有这些操作的按钮(暂停、继续、停止)

暂停和继续按钮在表单上有代码

问题是按下暂停按钮将冻结主窗体而不是后台线程。

0 投票
3 回答
420 浏览

c# - 我对 System.Threading.Timer 的使用可以更有效吗

我正在寻找一些关于使我的代码更高效的建议。我想做的是System.Threading.Timer每隔一小时左右运行一些工作,工作不会很繁重,但我希望有一个不占用太多资源的代码。我计划在 Windows 服务中运行此代码。

这就是我到目前为止所拥有的。

你们有什么感想?我可以让我的代码更有效率吗?

非常感谢所有建议!

0 投票
1 回答
322 浏览

threadpool - 不稳定的应用程序使用 SqlDependency。几种状态和错误

我有一个使用 SqlDependency 在分离线程池中运行的 Windows 应用程序,该应用程序表示一个日志监视器 UI,它获取添加到数据库中特定表中的最新行并在 DataGridView 中查看它。您可以从此LINK查看应用程序源代码,或遵循此脚本。

问题: 我有很多错误情况,(第一条评论中的图片)

(No. 1) : 我得到了这个错误对话框,我不知道它的原因。

(第 2 名):我的网格视图中什么也没有(没有错误,也没有数据)。

(第 3 名):虽然表格有行,但我只有列名,没有行。

我需要帮助。

0 投票
1 回答
269 浏览

c# - Windows Phone 项目中的 AutoResetEvent - 无法调用处理程序

它来自 Windows Phone 项目。我正在尝试调用几个处理程序,一个处理程序一个处理程序来接收有关 GPS / 反向位置的信息。我想知道为什么它不能正确运行。

当我只设置 1 个坐标时就可以了。我有关于 Street 等的消息。但是当有更多坐标时,我的处理程序不会被调用。

0 投票
1 回答
1500 浏览

c# - AutoResetEvent + Background Worker 相互结合

我对这两者协同工作有一个疑问,因为我不相信它们是齐头并进的。

我有一些使用后台工作者的代码,并在 DoWork() 中执行一些逻辑。此逻辑仅使用 TcpClient 对象并将数据发送到外部设备。

我的问题是在 DoWork() 中,我调用 AutoResetEvent.WaitOne()。这是否会停止当前线程,直到调用 AutoResetEvent.Set()?例如,如果 AutoResetEvent.Set() 从未被调用过,Background Worker 会简单地停止并且不执行任何操作吗?

不确定这是否本质上是糟糕的设计,但不幸的是支持它:(

编辑一些伪代码

0 投票
3 回答
1159 浏览

c# - AutoResetEvent 使用问题

我正在尝试使用 AutoResetEvent 对象来阻止线程直到异步。WebClient 的下载完成。

我的问题是,一旦我调用 WaitOne(),线程就会锁定在那里,VS 永远不会到达 DownloadComplete 事件处理程序方法中的断点。

这是我的代码

所以我在构造函数中用 false 实例化通知器,因为我不希望它的状态已经发出信号。除非我读错了 MSDN?

有什么明显的错误吗?

0 投票
1 回答
54 浏览

thread-safety - 多线程间代码执行

我正在编写一个需要与串口通信的程序。我主要关心的是防止冲突并确保不会同时从不同的功能写入/读取。

首先,有一个系统定时器从头开始,用于定期向串口写入数据,并通过给定的超时值监听响应。因此,它将有一个 Elapsed Event 并完成工作。

其次,还有另一个功能具有更高的优先级,需要立即将数据写入串行端口。

场景 1. Elapsed 事件每 1 分钟触发一次,如果仍然挂起前一个事件或 SendImmediately 函数,则永远不会继续。

场景 2. 如果 SendImmediately 被调用,则需要等待当前正在运行的 OnTimedEvent 完成。同样, OnTimedEvent 的下一次运行将停止,直到 SendImmediately 完成。

问题。如何在上一个或 SendImmediately 完成之前阻止 OnTimedEvent 的下一次运行?基本上是为了防止它们之间的干扰。

我在这里进行了一些问答。有很多建议的答案,如下所示:

  • 禁用和启用计时器
  • AutoResetEvent(2 路信号)
  • 手动复位事件
  • Monitor.Enter / Monitor.Exit(锁定)
  • 队列
  • 睡眠/加入/Task.Wait(阻塞)

我没有坚实的基础来确定哪种方法对我来说是正确或合适的,因为每种方法都有不同的场景。非常感谢任何建议。

0 投票
2 回答
754 浏览

c# - 在 C# 中使用 autoresetevent 读取和写入文件

我写了一个简单的线程同步程序。但是当我运行这个程序时,我得到一个错误“进程无法访问文件'D:\Vivek.txt',因为它正被另一个进程使用。” 为什么我收到此错误。

当我替换代码时

该程序第一次显示相同的错误。之后它永远不会给出任何错误。请任何人告诉我错误区域,原因以及最好的解决方案。

0 投票
4 回答
3931 浏览

c# - AutoResetEvent 设置后立即重置

考虑以下模式:

此模式的目的是允许外部消费者等待某个事件(例如 - 消息到达)。WaitForNextEvent不是从类中调用的。

举一个应该熟悉的例子,考虑System.Diagnostics.Process. 它公开了一个Exited事件,但也公开了一个WaitForExit方法,该方法允许调用者同步等待,直到进程退出。这就是我要在这里实现的目标。

我需要的原因signal.Reset()是,如果一个线程调用WaitForNextEvent after signal.Set()已经被调用(或者换句话说,如果.Set在没有线程等待时被调用),它会立即返回,因为该事件之前已经发出信号。

问题

  • 是否保证在调用线程调用之前WaitForNextEvent()会发出信号?如果没有,实现方法的其他解决方案是什么? signal.Reset()WaitFor