问题标签 [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.
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
.net - 通知 ThreadPool.QueueUserWorkItem 内存需求
我们正在设计一个应用程序,用户可以在其中设置同时运行的多个任务。我们使用 ThreadPool.QueueUserWorkItem 来设置任务运行。那部分运行良好。
我们确实有一个问题,这些任务会消耗 500MB 以上的内存。我们使用内存映射 I/O 来管理内存。仍然当用户设置 10+ 个任务同时运行时,线程池将启动所有这些任务,并且有时我们会耗尽内存并发生异常。我们可以很好地处理错误。
我想知道是否有办法在处理队列时考虑将消耗的内存,即保持任务排队直到存在足够的内存?我可以告知线程池我们将要求多少内存(我们可以粗略估计)吗?
c# - ThreadPool.QueueUserWorkItem 可以在主线程上执行吗?
我正在尝试在多线程应用程序中解决 Mac 上 SL 上的一个奇怪问题。我的应用程序使用 ThreadPool 对各种不同的工作项进行排队。我有一个HandleRequest
只通过调用的方法ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest))
。
该应用程序运行非常缓慢,因此我从 Windows 远程调试并暂停它以找到一堆卡在 HandleRequest 中的线程,因为它们正在等待有限的资源。没关系,因为那里还有另一个问题,但我也注意到主线程中有一个 HandleRequest 等待。怎么会这样?我认为 ThreadPool 在后台创建了工作线程并在它们上面执行了任务。
发生这种情况是因为 ThreadPool 已用完工作线程,因此正在使用调用线程来尝试执行回调方法吗?
winapi - WT_EXECUTEINUITHREAD 做什么?
WT_EXECUTEINUITHREAD
该函数的标志有什么QueueUserWorkItem
作用?
wcf - 在 WCF 方法中使用 ThreadPool.QueueUserWorkItem
我需要在 WCF 方法中运行大约需要 25-30 秒的后台逻辑,该方法的完成时间不会超过 1 秒。我决定在退出 Web 方法之前将该逻辑包装到 WaitCallback 中并将其传递给 ThreadPool.QueueUserWorkItem。最初它工作正常,但现在我有了第二个想法,因为我怀疑有时 QueueUserWorkItem 方法不会及时返回,因为结果 Web 方法不会在 1 秒内定期响应。在 WCF 方法中使用 QueueUserWorkItem 是否有任何问题?
c# - .net 4.0 线程池异常
下面的代码在.net 4.0编译时抛出异常,而在.net 2.0编译时,没关系,有人遇到我吗?请帮忙(我没有在回调函数中使用DateTime)。</p>
c# - ThreadPool.QueueUserWorkItem 中的 AgrumenNullException
我有一种方法,它经常被不同的踏板调用。有时我在被调用时得到一个 AgrumenNullException ThreadPool.QueueUserWorkItem(display(angebot), null);
,说明参数callBack
(第一个参数)为空。
我究竟做错了什么?
multithreading - 如何在 Windows 服务中使用 Threadpool.QueueUserWorkItem?
我有一个使用 Threadpool.QueueUserWorkItem 的 Windows 服务。该服务连接到多个客户端数据库,抓取数据,转换为 XLS 并将文件发送到相应的 FTP。
我对以下代码有 3 个问题:
- 我是否正确使用了 Threadpool.QueueUserWorkItem?
- 我是否需要在代码中的任何地方使用 Lock 以避免出现问题?如果是,在哪里和到什么对象。
- 代码中有什么不正确的地方吗?如果是,是什么以及如何处理它?
代码:
该服务运行良好,我得到了适当的结果,但我需要确保我做对了,以后不会遇到问题。
c# - ThreadPool.QueueUserWorkItem 和 Parallel.ForEach 的区别?
以下两种方法的主要区别是什么:
ThreadPool.QueueUserWorkItem
System.Threading.Tasks.Parallel ForEach
我是多线程的新手,想知道每种情况下会发生什么(就执行过程而言)每种方法的多线程级别是多少?帮助我可视化这两个过程。
SendFilesToClient:从数据库中获取数据,转换为 Excel 并将 Excel 文件发送到相应的客户端。
谢谢!
multithreading - 具有许多线程的线程池 queueuserworkitem
注意:我对使用线程池不是很熟悉,这从下面的代码中可能很明显。我的印象是我可以将许多值推送到这个队列中,然后它会等待一个线程完成然后移动到下一个线程,系统将处理要运行的线程数的同步。
我正在尝试使用 ThreadPool::QueueUserWorkItem(waitcallback, num) ,其中 num 的值根据某些先前的算法迭代到动态值。我遇到的问题是程序在它变得太高时崩溃。
我收到消息“运行时错误!此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。”
我最反感的是 numBlocks = 644。