问题标签 [event-wait-handle]

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 回答
251 浏览

c# - 如何使用 EventWaitHandler 挂起某些线程

我有这个过程,其中有两个线程。和一个带有按钮(开始、暂停、暂停、恢复)的表单。每当我暂停使用EWH.WaitOne()整个应用程序时都会冻结(暂停)并且我无法再按下恢复按钮

有没有办法仅在表单继续运行时暂停 2 个线程?(我的代码中的线程 1 和 2)

0 投票
2 回答
353 浏览

.net - .NET EventWaitHandle 向所有线程发出信号

close()向所有threads呼叫过的人发出信号WaitOne()吗?

如果没有,最好的方法是什么?

0 投票
2 回答
1354 浏览

c# - 告诉正在执行循环的线程跳出循环并做其他事情的正确方法是什么?

以下代码的缺点是,在主线程重置等待句柄后,工作线程既不会立即终止,也不会执行最终操作。相反,它将继续做它正在做的事情,直到它到达循环的下一次迭代,此时它将被无限期地阻塞。

下面的代码的缺点是它使用了 Abort() 方法(有人说应该不惜一切代价避免它),但完全符合我的要求:强制工作线程退出循环一旦主线程告诉它这样做,执行最终操作并退出。

由于这两种解决方案都不是理想的,所以实现我正在寻找的功能的正确方法是什么?

(我更喜欢不涉及 .net 4.5 任务的解决方案)

0 投票
5 回答
4870 浏览

c# - 如何知道是否调用了 EventWaitHandle.Set

有没有办法知道哪个EventWaitHandle被调用了。

我有两个具有 2 个不同系统范围事件名称的自定义类。

我拥有它们的原因是为了区分要触发的功能。

我现在遇到的问题是如何区分触发了哪个事件?

所以如果_ew1.Set()被调用,那么我需要执行Process1.

如果 _ew2.Set() 被调用,那么我需要执行Process2.

更新:添加了更多信息。

主线程是 Windows 服务。由 Web 应用程序和桌面应用程序发出信号。因此,基本上该服务需要确定谁从 Web 应用程序或桌面应用程序触发了事件,如果它是 WebAppliation,则执行 SP1,否则如果它是 Windows 应用程序,则执行 SP2。

0 投票
2 回答
598 浏览

c# - 使用 eventwaithandle 进行调度

您好我正在尝试使用 EventWaitHandle 类创建调度的实现

举个例子:

阅读代码中的待办事项

归结为:所以我希望能够安排超过 int.MaxValue 的执行,并手动强制执行跨进程

也许是实现完全相同场景的更简单方法?

0 投票
1 回答
1015 浏览

c# - 为什么我的 EventWaitHandle 会收到 UnauthorizedAccessException?

我编写了一个运行以下代码行的可执行进程:

我可以在这个可执行进程正在运行并且它工作正常时设置这个事件,但是一旦可执行文件作为一个进程被终止(例如,如果你手动终止该进程,则从任务管理器中)并且我在我终止后立即自动重新启动该进程它,我得到一个“System.UnauthorizedAccessException:对路径'Global\immediateShutdownEvent'的访问被拒绝”,即使它在相同的SYSTEM上下文下运行。为什么会这样,我该如何解决?

0 投票
1 回答
591 浏览

c# - 将事件发送到单个进程

我目前正在使用EventWaitHandle触发完全关闭没有来自 Windows 窗体应用程序的窗口的本机进程。当我同时运行多个这些进程时,设置事件将停止所有这些进程。有没有办法将事件发送到单个选定的进程?我为他们每个人保留一个Process变量。

0 投票
2 回答
312 浏览

c# - 如何在不使用线程池和使用 EventWaitHandler 进行处理的情况下在线程束中运行多个进程

我必须运行多个线程。如果一个线程完成然后启动另一个线程。问题是它同时启动了所有进程。(似乎这种情况不能正常工作 WaitHandle.WaitAny(events);)

1:如果有 20 个线程正在运行,那么当一个线程从 20s 线程释放时,将启动第 21 个线程。

2:不使用线程池可以使用EventWaitHandler来完成。

0 投票
0 回答
235 浏览

c# - WinFormApps 与 ConsoleApps:BackgroundWorker 和 EventWaitHandle

我有两个程序:带有 .NET 2.0、C# 和 VS2010 的 WinformApplication 和 ConsoleApplication。

两个程序与 backgroundworker 和 EventWaitHandle 有相同的任务。

  1. 创建BGW
  2. 做工作
  3. RunWorkerCompleted { .. event.Set(); .. }
  4. 等待 event.waitone()

控制台应用程序运行良好。但是,Forms 应用程序不起作用。这是完整的代码。你能试试,让我知道是什么问题。

这是 WinFormApplication 代码:

这是 ConsoleApplication 代码:

0 投票
2 回答
1373 浏览

c# - .NET 系统范围的 EventWaitHandle 名称允许的字符

我只是好奇,对系统范围的命名是否有任何限制EventWaitHandle?我想使用一个 URL 作为一个名称,但它可能有很多奇怪的字符,我不希望它默默地失败或其他类似的,所以只要在这里检查是否有任何已知的非法字符对于这些名称。

我试着自己找到这个,但我的 google-fu 达不到标准。