问题标签 [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 回答
1122 浏览

c# - C# Async WebRequests:在所有请求完成时执行操作

我在 C# 中有这个基本的抓取控制台应用程序,它异步使用 WebRequest 从站点列表中获取 html。它工作正常,但是如何设置一个触发器,当列表中的每个站点都被处理时触发?

我花了几个小时在线研究各种解决方案,包括 MS 文档,但没有一个通过代码提供直接的答案。我已经阅读了有关 IAsyncResult.AsyncWaitHandle 的信息,但我不知道如何将它集成到我的代码中。我只想在所有线程完成处理或超时时调用自定义函数。

一个技巧是我永远不会提前知道我的列表中有多少个站点(它是用户定义的),所以我需要一个足够强大的解决方案来等待 5 个事件来完成 100,000 个事件。

谢谢。下面的工作代码:

任何人都可以告诉我如何限制并发线程的数量。例如,如果我有 100 个站点要处理,我如何设置它以便一次处理 10 个站点,但不能更多。我不想打开 100 个线程。

0 投票
1 回答
354 浏览

c# - 将 AutoResetEvent 对象包装在受限制的 WaitHandle 中?

我已经建立了一个库,它启动一个线程来做这件事并将一个 WaitHandle 返回给调用者。

查看错误报告,我怀疑调用我的库的代码正在获取返回的对象并将其转换为 AutoResetEvent (它是)并提升标志本身。它不是为了这样做。

有没有一种方法可以将 AutoResetEvent 对象包装为仍然可以是 WaitOne'd 和 WaitAny'd 但只能由我的代码引发的对象?

谢谢。

0 投票
2 回答
1996 浏览

c# - 由于 AutoResetEvent 信号处于 WaitOne 状态,线程在应用程序终止后仍然存在

我有一个应用程序在队列中使用 AutoResetEvent (WaitOne/Set) 来处理消息。我注意到当我从 Visual Studio (Shift+F5) 终止调试会话时,应用程序的原始进程会挂起(但并非总是如此)。我手动将调试器重新附加到进程,并看到它有单个线程卡在 WaitHandle.WaitOne 上。

所以我的问题是,终止可能处于 WaitOne 状态的线程的正确方法是什么?

想到的第一个答案是听应用程序退出事件并在那里进行设置,但我不确定在这些调试会话之后是否可靠地调用了此事件,或者是否有我不知道的更标准的做法的。

而且,作为第二个问题,对于在“生产”模式下运行的应用程序,您会以不同的方式处理这个问题吗?

0 投票
2 回答
1320 浏览

android - 进度条仅在长时间操作期间显示

我正在设计一个应用程序,通过单击按钮从 sqlite 数据库中获取数据。我只想在提取过程中显示等待消息或进度条,前提是该过程很长,例如超过 3 秒。否则它可以继续程序。我该怎么做呢 。我尝试使用以下代码显示进度对话框,但它只等待指定的睡眠时间并继续进行而不显示任何内容....请帮助

0 投票
1 回答
426 浏览

c# - 为什么等待此任务 1022 毫秒工作正常但 1023 会导致 AggregateException?

尝试实现连接到服务器的超时参数,但我运气不佳。这是我的代码:

不幸的是,如果 timeoutInMS 大于 1022,则会在此行引发 AggregateException:

调整 TcpClient 的超时属性似乎没有任何区别。

0 投票
2 回答
3673 浏览

.net - What does the exit context mean for a WaitHandle.WaitOne mean?

I'm trying to use a mutex to protect access to some hardware from multiple threads, but I'm confused as to what the exitContext parameter means / does:

The docs say:

exitContext - true to exit the synchronization domain for the context before the wait (if in a synchronized context), and reacquire it afterward; otherwise, false.

...but what does that actually mean and what are the consequences of setting it to either true or false? I've set it to true for now and the code appears to work, but I'm nervous that I don't fully understand what it's up to under the hood!

0 投票
1 回答
4649 浏览

linux-kernel - Linux:wake_up 和 sleep_on 函数

我正在尝试学习如何为 linux 编写可加载的内核模块。我想知道是否有人可以告诉我这些功能sleep_on和作用wake_up是什么?

在我正在查看的示例中,&WaitQ总是传递给它们并且

在模块顶部声明。

0 投票
0 回答
240 浏览

c - 使用 pthread_cond_timedwait 打印指定时间

嘿,我有一个与 pthread_cond_timedwait 相关的小问题。我已经尝试将它实现到这段代码中。我无法为 timedwait 找到正确的论点,因为我不太确定自己在做什么。如果有人能指出我正确的方向,将不胜感激!

0 投票
2 回答
377 浏览

c# - ManualResetEvent 可以用来取代布尔值吗

诚然,这是一个不寻常的问题。我绝不会建议在典型的 .NET 开发中用 ManualResetEvent 替换布尔值。在这种情况下,我已经需要一个 ManualResetEvent 来指示与另一个线程的连接状态;鉴于此,我想到使用具有相同语义含义的布尔值是多余的。

好的,细节:我有一个工作线程应该在以下条件为真时处理消息:

  • “客户端”已连接
  • “收件人”已连接

“客户端”和“接收者”连接是其他线程正在监视的 TCP 套接字;当任一连接状态发生变化时,相应的 WaitHandle 将被设置(Connected)或重置(Disconnected)。

最初,我有一个布尔值表示连接状态(用于 UI)。现在我正在使用 WaitHandles 向工作线程发出信号,完全消除布尔状态变量并只使用 WaitHandles 似乎是有利的。

返回句柄的状态而不阻塞,使其在功能上与测试布尔值相同(具有线程安全操作的附加优势)。

所以,考虑到我已经准备使用 WaitHandles,而且我不喜欢将状态(相同的语义)维护到两个不同的变量中,我有什么理由不能只使用 WaitHandles 吗?我能想到的最重要的反驳论点是运行时性能:测试布尔值的时间与测试 WaitHandle 的时间;但我认为性能不会受到太大影响。

我在这里错过了什么重要的东西吗?

谢谢!

0 投票
1 回答
349 浏览

windows-phone-7 - Windows Phone 上 WaitHandle.WaitAll 的替代方案?

WaitHandle.WaitAll 在 Windows Phone (7.1) 上执行时会引发 NotSupportedException。这种方法有替代方法吗?

这是我的场景:我正在触发一堆 http web 请求,我想等待所有请求都返回,然后才能继续。我想确保如果用户必须等待超过 X 秒(总共)才能返回所有这些请求,则应该中止操作。