问题标签 [waithandle]

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

c# - 退出应用程序时使用 UnsafeRegisterWaitForSingleObject 失败并出现异常?

如果某些应用程序退出,我正在尝试使用它ThreadPool.UnsafeRegisterWaitForSingleObject来通知。它至少可以按我想要的方式工作,但是在我关闭主窗体后,它会抛出异常:

SEHException : 外部组件抛出异常

堆栈跟踪:

这是代码:

我什至不需要等待回调被调用,只需运行代码,然后关闭主窗体就会抛出异常。

有趣的是,如果使用OpenProcess本机函数来获取进程句柄而不是使用这样的Process类:

然后它可以正常工作,没有任何例外,但我不确定在这种情况下是否最好尽可能地坚持托管包装器。另外我想了解为什么在使用Process类时会引发此异常。看起来Synchronize标志(记录中的必需标志)是使 usingOpenProcess和 wrapper 不同的原因Process。如果在这种情况下看起来Process无法替换OpenProcess,或者我在这里错过了什么?

其他信息:Visual Studio 2010,面向 .NET 4.0

谢谢你。

0 投票
1 回答
982 浏览

c# - WaitHandle WaitOne 返回

具体什么时候WaitHandle WaitOne(int timeout)回来?超时后它会返回吗?我在网上看到一些代码建议WaitOne()在执行退出前进行一些清理的逻辑时进行轮询。这意味着当超时过去时 WaitOne() 不会返回;相反,它返回是否在调用后立即发出信号。

我在这里试图实现的是一种在阻塞调用线程时发出信号的WaitHandle方法。CancellationToken

0 投票
1 回答
1628 浏览

c# - 在 .Set 之后直接在 EventWaitHandle 上调用 .Close (.Dispose) 是否安全?

我有一个线程在 EventWaitHandle (AutoResetEvent) 上等待:

我有另一个线程指示第一个线程继续

在 .Set 之后直接调用 .Close 是否安全,换句话说,是否可以保证在 AutoResetEvent 被释放之前等待线程已经继续?

0 投票
3 回答
1495 浏览

c# - 如何制作非阻塞等待句柄?

本质上,我正在做的是创建一个 Web 服务器来处理 API 调用,然后当它完成后继续执行方法,所以本质上是:

但是,这会阻塞线程直到那时。有什么办法可以使这个异步?将它包装在一个await Task.Run()电话中是否可以,即await Task.Run(() => myAutoResetEvent.WaitOne())

谢谢!

0 投票
1 回答
78 浏览

javascript - 哪个浏览器加载问题

我正在使用 whichbrowser javascript。我正在创建对象以访问此脚本。当我创建对象时,这个脚本没有加载到我的浏览器中,因此它停止了 javascirpt 文件的执行。我如何知道脚本是否已加载?

0 投票
2 回答
108 浏览

c# - 只读 WaitHandle C#

我正在WaitHandle为负责在内部创建资源的对象公开一个接口,但这可能需要很长时间。合同如下所示:

WaitHandle开始未设置,但我在初始化完成后设置它(在后台,在构造函数返回后)。我不喜欢这个的事情是这个合同的消费者可以设置WaitHandle自己,当他们没有业务能够做到这一点时。它让我想起了 get-onlyIList<T>属性和IReadOnlyList<T>.

C# 中是否有像 a 那样WaitOnlyWaitHandle只公开WaitOne()重载方法的东西?

所以我不是 XY 问题的受害者,是否有更规范的异步构造对象的方法来构建具有较长构造时间的对象?

0 投票
1 回答
332 浏览

c# - 如何防止此异常:值不在预期范围内。使用 WaitHandle.WaitAny 方法?

QueueCompareProcessThread() 异常消息:值不在预期范围内。跟踪:在 System.Threading.WaitHandle.WaitAny(WaitHandle[] waitHandles, Int32 毫秒Timeout, Boolean exitContext) 在 System.Threading.WaitHandle.WaitAny(WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext) 在 System.Threading. WaitHandle.WaitAny(WaitHandle[] waitHandles)

当我在线程中使用该WaitAny方法时,出现上述异常。WaitHandle请帮我解决问题。这是我的部分代码:

谁能提供一些关于 WaitAny 方法的想法并帮助我解决问题?

0 投票
2 回答
80 浏览

c# - 在 C# 中使用 WaitHandles 进行线程等待

这是我想要实现的目标。

我有一个登录类。一旦用户通过身份验证,一些登录后操作将在一个线程中完成。用户进入主页。

现在从主页我转到一个不同的功能,比如类 FindProduct。我需要检查登录线程中的登录后操作是否完成。只有在登录后操作完成后,我才允许进入该功能。

我是否必须在 PerformLoginAsyncThread 和 OnClickFindProduct 上放置等待句柄?

0 投票
0 回答
166 浏览

c# - C# (Xamarin) WaitHandle.WaitAny 返回 Int32.MaxValue (0x7FFF FFFF)

WaitHandle.WaitAny Method (WaitHandle[], Int32) 的文档说它返回“满足等待的对象的数组索引,如果没有对象满足等待,则返回 WaitTimeout,并且时间间隔相当于毫秒超时已经过去”,并且在程序集浏览器我看到 WaitHandle.WaitTimeout 是 258。

那么为什么我有时会从这个函数中得到 0x7fffffff (Int32.MaxValue) 作为返回值呢?

这是 WaitAny() 中的已知错误,还是文档中缺少一行?

稍后添加:

顺便说一句,错误发生了几次,然后就消失了,我没有做任何事情来“修复”手柄或类似的东西。

微软文档

Xamarin 文档

代码:

0 投票
1 回答
130 浏览

c# - 在 CountdownEvent 中使用 WaitHandle

我有一个简单的应用程序来说明CountdownEvent。很好,但我想以某种方式设置WaitHandleCountDownEvent使用它。可能吗?如何做到这一点?我想我应该注册WaitHandle并将其传递给CountDownEvent?

UPD

我想得到类似于 sample with 的东西ManualResetEvent。无阻塞wait()