semaphore

    3热度

    1回答

    我有一个运行槽信息的工作对象列表。 下面是代码的示例: List<Job> jobList = jobQueue.GetJobsWithStatus(status); if (jobList.Count > 0) { foreach (Job job in jobList) { semaphore.WaitOne(); // Only N thread

    0热度

    1回答

    JI在Visual Studio 2008中编写了.NET C#Windows窗体应用程序,它使用信号量在按下“开始”按钮时将多个作业作为线程运行。 遇到一个问题,表单在运行40分钟或更长时间后进入逗号。日志文件表明当前作业完成,它从列表中选择一个新作业,并在那里挂起。 我注意到当这种情况发生时,Windows窗体变得没有响应。该表单正在其自己的线程中运行。 这是我使用的代码的一个示例: prot

    4热度

    1回答

    如何测量互斥量,信号量或futex的延迟?我的意思是两个事件之间的延迟:解锁先前锁定的互斥锁和互斥锁。有两种情况:所有线程/进程在同一个CPU上时(重新调度线程需要多长时间)以及第一个线程在第一个CPU上,第二个线程在第二个时。 Thread1: Lock(Mutex) Critical1 Unlock(Mutex)|<------->| Thread2: while{tryloc

    3热度

    2回答

    我想创建一个Win32信号量对象,它是可继承的。这意味着我启动的任何子进程可能自动有权对同一个Win32对象执行操作。 我的代码目前看起来如下: Semaphore semaphore = new Semaphore(0, 10); Process process = Process.Start(pathToExecutable, arguments); 但是在这个代码量对象不能由子过程中使

    4热度

    3回答

    Semaphore类我有一个要求来分配资源的线程数,所以我用旗语来处理这一切,然后我意识到,信号在资源的进程间锁定的情况下使用。我搜索了一下,发现了In-Process Semaphore的一些实现,并且使用了这个类,但它有一些奇怪的错误。 现在我的问题是我应该使用Dot Net Semaphore Class?并有反正我可以在过程旗语创造和减少间(内部管理)的成本

    3热度

    3回答

    function myobj(){ var gup=this; this.lastindex=-1; this.criticalSectionInTimer=0; this.updateTimer; this.start = function(l){ if((typeof this.updateTimer)=="number"){

    7热度

    1回答

    documentation的用于.NET Semaphore类指出: 没有保证的顺序,如FIFO或LIFO,其中阻塞的线程输入信号量。 在这种情况下,如果我想保证订单(FIFO或LIFO),我的选择是什么?这是不是很容易的事情吗?我需要写自己的信号量吗?我认为这会很先进? 感谢, 史蒂夫

    12热度

    5回答

    是信号量的一种IPC机制吗?

    1热度

    2回答

    我正在使用以下代码来限制资源的使用。 偶尔(成功运行3-4天后)我得到队列空异常或返回的对象被发现为空。 我想知道如果我限制只有5个线程进入这个Get方法,怎么会发生这种情况。 调用GetConnection的地方,ReleaseConnection也在Finally块中被明确调用。 随着每次通话,我也记录号码。的队列中的资源。队列计数似乎永远不会超过5.我的问题是,我需要使用锁定/监视器同步访问

    2热度

    5回答

    (简而言之:main()的WaitForSingleObject挂起在下面的程序中)。 我正在尝试写一段代码调度线程并等待它们在恢复之前完成。我不是每次都创建线程,而是花费很大,所以我让他们睡着了。主线程以CREATE_SUSPENDED状态创建X个线程。 同步使用X作为MaximumCount的信号量完成。信号量的计数器被置零,线程被调度。在他们进入睡眠状态之前,Thred会执行一些愚蠢的循环并