草庐IT

ThreadPoolExecutor优先级队列PriorityBlockingQueue

全部标签

c# - 创建一个队列来处理由 FileSystemWatcher 触发的作业

我构建了一个小型托盘应用程序,它将监视一个文件夹,并在添加新文件时运行一个作业。工作是观看视频文件并使用handBrakeCli将它们转换为.mp4。我已经解决了所有这些逻辑。我遇到的问题是,如果有多个文件,我希望它对作业进行排队,直到前一个文件完成。我是c#的新手,我不确定处理这个问题的最佳方法。一个想法是以某种方式创建一个队列,一个文件来按顺序存储命令,然后在过程完成后执行下一个命令。我们在这里处理大型电影文件,因此可能需要一段时间。我在具有8gbRAM的四核上执行此操作,似乎通常需要大约30分钟才能完成一部完整的电影。我只是不知道该怎么做。这是我目前的代码。这里有一些用于futu

c++ - 我如何在基于消息队列的Windows应用程序上使用谷歌测试?

我想对我的程序使用谷歌测试,它里面有定时器功能。定时器由windows的SetTimer()实现,在main()中有一个消息队列来处理超时消息。while(GetMessage(&msg,NULL,0,0)){if(msg.message==WM_TIMER){...}DispatchMessage(&msg);}对于google测试,它调用RUN_ALL_TESTS()开始测试。intmain(intargc,char*argv[]){testing::InitGoogleTest(&argc,argv);returnRUN_ALL_TESTS();}我的问题是如何整合这两个部分。因

c# - MSMQ 中的多个队列(性能下降)

当我使用10个队列而不是1个队列时,为什么MSMQ的性能下降(~三分之一)?简而言之,当我在多线程应用程序中使用超过1个队列(从不同线程中的每个队列接收)时,MSMQ性能会大幅下降。这就像.NET中的MSMQ类有一个共享资源,随着队列数量的增加而缩小。顺便说一句,我在VisualStudio2010中使用Windows7进行这些测试。注意:我有1个队列用于在2个应用程序之间进行通信。我只需要使用可恢复模式。它工作正常,直到遇到100-150条消息/秒的限制。然后我想我可以通过将队列数量增加到10并并行处理它们来提高处理能力。但是当我收到时,时间增加了近3倍!:O我使用C#编写了我的应用

c# - 即使队列已重命名,如何在 Windows 上唯一标识打印队列?

如何唯一可靠地识别给定服务器上的Windows打印队列,包括跨打印队列重命名?我想处理如下情况:Jdoe创建打印机A我的程序在某个时候收集了打印机A的信息Jdoe将打印机A重命名为打印机AA我的程序在某个时候再次收集有关打印机AA的信息如何判断打印机A和打印机AA是同一台打印机(名称已更改)?我想在支持WindowsXP/2003及更高版本的C#中执行此操作。我尝试过的事情:在Windows8/Server2012上,我似乎可以通过WMI查看CIM_LogicalDevice->DeviceID来执行此操作,这似乎在重命名过程中保持一致,但在早期版本的操作系统中,此属性仅包含队列名称并

windows - matlab低优先级系统调用

我想检查/改进我使用的一些校正算法。整个事情是在Matlab中实现的,就像这样forii=1:nn...%Preparesomeinputfilesparfori=1:nsystem('...');%simulationcodeend...%Usetheoutputandpreparesomestuffthatcanbeusedtoprepthenextiterationend其中n比我可以使用的#Treads大。这通常需要一段时间才能运行,同时我想将计算机用于其他(非cpu饥饿)任务。因此我想以低优先级运行系统调用。我已经尝试使用new或start来执行此操作,但是调用不会等到它完成

windows - list 嵌入式和外部 - 哪个优先?一个可以凌驾于另一个之上吗?

当一个可执行文件有一个嵌入的list和相应的.manifest文件时,哪个list有优先权?是否只加载了一个?一个可以覆盖另一个吗? 最佳答案 我只是谷歌一下CSIWindowsExternalManifest:PrecedenceLevel:1(lowest)InternalManifest:PrecedenceLevel:2(overridesexternalmanifest) 关于windows-list嵌入式和外部-哪个优先?一个可以凌驾于另一个之上吗?,我们在StackOver

windows - 我将如何在后台运行 Laravel 5.2 的队列监听器?

在我的项目中,我使用数据库队列并使用命令执行此队列phpartisan队列:监听在composer中,它正在工作。但是在我的Windows服务器中,有很多项目使用队列,所以打开了很多Composer窗口。很不方便。是否可以在不打开Composer窗口的情况下在后台运行此命令? 最佳答案 您可以使用该命令,但它只会在您注销或重新启动之前起作用nohupphpartisanqueue:work--daemon&尾随符号(&)导致进程在后台启动,因此您可以继续使用shell而不必等到脚本完成。参见nohupnohup-runacomman

C++互斥锁定线程优先级

我希望为一个线程赋予优先级,这样如果两个线程都在等待互斥锁,那么优先级最高的线程将始终在优先级较低的线程之前获取互斥锁。一位同事建议我应该通过更改线程的线程优先级来实现这一点。我尝试使用SetThreadPriority()函数将一个等待线程设置为0(正常),将另一个设置为2(最高),但这并没有像我希望的那样影响互斥行为。锁当前总是转到请求所有权的第一个线程。那么这种行为正常吗?跟我同事的想法相反?有没有其他方法可以赋予我可能缺少的线程优先级?还是我正在寻找更复杂的问题来解决? 最佳答案 线程优先级表示线程在CPU上占用的时间由调度

windows - 我可以通过 ini 文件中的设置或直接从脚本中设置 CLI 模式下 php 脚本的运行优先级吗?

我指的是可以从任务管理器更改的设置,例如“实时”或“空闲”。我的脚本占用了大量资源并削弱了同时运行的GUI程序。我想通过脚本将它的优先级设置为空闲。我不需要它100%快。 最佳答案 在Windows命令行上,您有几个选项:start/b/lowprogram.exestart/b/highprogram.exestart/b/realtimeprogram.exestart/b/normalprogram.exestart/b/abovenormalprogram.exestart/b/belownormalprogram.exe

.net - 如何在 Windows 上查询打印队列

我们正在开发一个关键应用程序,需要对打印的文档进行最好的控制。为了确定哪些文档被打印或不被打印,我们需要检查打印机队列。我们如何在Windows上查询打印队列(状态、队列列表、错误...)? 最佳答案 EnumPrinters获取打印机列表,EnumJobs获取该打印机的作业列表。GetJob获取有关特定工作的信息和SetJob更改该作业的设置(暂停或取消它)。在PrintingandPrintSpoolerReferences中查看更多信息..NET有PrintQueue和PrintServer类。