问题标签 [queueuserworkitem]

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 投票
3 回答
5592 浏览

c# - Threadpool in C# too slow, is there a way to speed up it? Thread.Sleep(0) and QueueUserWorkItem issues

I am using Threadpool in a C# application that need to do some CPU-intensive work. By the way it seems too slow (EDIT: it prints out debug string "Calculating on " + lSubArea.X + ":" + lSubArea.Y + " " + lSubArea.Width + ":" + lSubArea.Height only few times every 10 seconds, while I'm expecting to see that at least NUM_ROWS_GRID^2 = 16 times every few seconds), also changing MinThreads via SetMinThreads method. I don't know if switch to custom threads or if there's a way to speed up it. Searching on Google returns me some result but nothing works; same situation with MSDN.

Old Code follows:

EDIT: CreateDiffFrame function is only a stub I used to know how many times it is called per second. It will be replaced with CPU intensive work as I define the best way to use thread in this case.

EDIT: I removed all Thread.Sleep(0); I thought it could be a way to speed up routine but it seems it could be a bottleneck.. new code follows:

EDIT: I made WorkEnd and VideoOn volatile in order to avoid cached values and so endless loop; I added also a semaphore to make every bunch of work items start after previous bunch is done.. now it is working quite well

0 投票
3 回答
824 浏览

.net - 通知 ThreadPool.QueueUserWorkItem 内存需求

我们正在设计一个应用程序,用户可以在其中设置同时运行的多个任务。我们使用 ThreadPool.QueueUserWorkItem 来设置任务运行。那部分运行良好。

我们确实有一个问题,这些任务会消耗 500MB 以上的内存。我们使用内存映射 I/O 来管理内存。仍然当用户设置 10+ 个任务同时运行时,线程池将启动所有这些任务,并且有时我们会耗尽内存并发生异常。我们可以很好地处理错误。

我想知道是否有办法在处理队列时考虑将消耗的内存,即保持任务排队直到存在足够的内存?我可以告知线程池我们将要求多少内存(我们可以粗略估计)吗?

0 投票
0 回答
1126 浏览

c# - ThreadPool.QueueUserWorkItem 可以在主线程上执行吗?

我正在尝试在多线程应用程序中解决 Mac 上 SL 上的一个奇怪问题。我的应用程序使用 ThreadPool 对各种不同的工作项进行排队。我有一个HandleRequest只通过调用的方法ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest))

该应用程序运行非常缓慢,因此我从 Windows 远程调试并暂停它以找到一堆卡在 HandleRequest 中的线程,因为它们正在等待有限的资源。没关系,因为那里还有另一个问题,但我也注意到主线程中有一个 HandleRequest 等待。怎么会这样?我认为 ThreadPool 在后台创建了工作线程并在它们上面执行了任务。

发生这种情况是因为 ThreadPool 已用完工作线程,因此正在使用调用线程来尝试执行回调方法吗?

0 投票
1 回答
387 浏览

winapi - WT_EXECUTEINUITHREAD 做什么?

WT_EXECUTEINUITHREAD该函数的标志有什么QueueUserWorkItem作用?

0 投票
1 回答
865 浏览

wcf - 在 WCF 方法中使用 ThreadPool.QueueUserWorkItem

我需要在 WCF 方法中运行大约需要 25-30 秒的后台逻辑,该方法的完成时间不会超过 1 秒。我决定在退出 Web 方法之前将该逻辑包装到 WaitCallback 中并将其传递给 ThreadPool.QueueUserWorkItem。最初它工作正常,但现在我有了第二个想法,因为我怀疑有时 QueueUserWorkItem 方法不会及时返回,因为结果 Web 方法不会在 1 秒内定期响应。在 WCF 方法中使用 QueueUserWorkItem 是否有任何问题?

0 投票
0 回答
836 浏览

c# - .net 4.0 线程池异常

下面的代码在.net 4.0编译时抛出异常,而在.net 2.0编译时,没关系,有人遇到我吗?请帮忙(我没有在回调函数中使用DateTime)。</p>

0 投票
1 回答
134 浏览

c# - ThreadPool.QueueUserWorkItem 中的 AgrumenNullException

我有一种方法,它经常被不同的踏板调用。有时我在被调用时得到一个 AgrumenNullException ThreadPool.QueueUserWorkItem(display(angebot), null);,说明参数callBack(第一个参数)为空。

我究竟做错了什么?

0 投票
1 回答
5581 浏览

multithreading - 如何在 Windows 服务中使用 Threadpool.QueueUserWorkItem?

我有一个使用 Threadpool.QueueUserWorkItem 的 Windows 服务。该服务连接到多个客户端数据库,抓取数据,转换为 XLS 并将文件发送到相应的 FTP。

我对以下代码有 3 个问题:

  1. 我是否正确使用了 Threadpool.QueueUserWorkItem?
  2. 我是否需要在代码中的任何地方使用 Lock 以避免出现问题?如果是,在哪里和到什么对象。
  3. 代码中有什么不正确的地方吗?如果是,是什么以及如何处理它?

代码:

该服务运行良好,我得到了适当的结果,但我需要确保我做对了,以后不会遇到问题。

0 投票
1 回答
7948 浏览

c# - ThreadPool.QueueUserWorkItem 和 Parallel.ForEach 的区别?

以下两种方法的主要区别是什么:

ThreadPool.QueueUserWorkItem

System.Threading.Tasks.Parallel ForEach

我是多线程的新手,想知道每种情况下会发生什么(就执行过程而言)每种方法的多线程级别是多少?帮助我可视化这两个过程。

SendFilesToClient:从数据库中获取数据,转换为 Excel 并将 Excel 文件发送到相应的客户端。

谢谢!

0 投票
1 回答
1666 浏览

multithreading - 具有许多线程的线程池 queueuserworkitem

注意:我对使用线程池不是很熟悉,这从下面的代码中可能很明显。我的印象是我可以将许多值推送到这个队列中,然后它会等待一个线程完成然后移动到下一个线程,系统将处理要运行的线程数的同步。

我正在尝试使用 ThreadPool::QueueUserWorkItem(waitcallback, num) ,其中 num 的值根据某些先前的算法迭代到动态值。我遇到的问题是程序在它变得太高时崩溃。

我收到消息“运行时错误!此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。”

我最反感的是 numBlocks = 644。