问题列表 - 第22458页

ReleaseSemaphore 不释放信号量

(简而言之:main() 的 WaitForSingleObject 挂在下面的程序中)。

我正在尝试编写一段代码来调度线程并在它恢复之前等待它们完成。我不是每次都创建线程,这是昂贵的,而是让它们进入睡眠状态。主线程在 CREATE_SUSPENDED 状态下创建 X 个线程。

同步是使用 X 作为 MaximumCount 的信号量完成的。信号量的计数器归零,线程被分派。线程执行一些愚蠢的循环并在它们进入睡眠之前调用 ReleaseSemaphore。然后主线程使用 WaitForSingleObject X 次以确保每个线程完成其工作并处于睡眠状态。然后它循环并再次执行所有操作。

有时程序不退出。当我启动程序时,我可以看到 WaitForSingleObject 挂起。这意味着线程的 ReleaseSemaphore 不起作用。没有什么是 printf'ed 所以据说没有出错。

也许两个线程不应该在完全相同的时间调用 ReleaseSemaphore ,但这会使信号量的目的无效......

我只是不理解它...

感谢同步线程的其他解决方案!

#define TRY  100
#define LOOP 100

HANDLE *ids;
HANDLE semaphore;

DWORD WINAPI Count(__in LPVOID lpParameter)
{ 
 float x = 1.0f;   
 while(1)
 { 
  for (int i=1 ; i<LOOP ; i++)
   x = sqrt((float)i*x);
  while (ReleaseSemaphore(semaphore,1,NULL) == FALSE)
   printf(" ReleaseSemaphore error : %d ", GetLastError());
  SuspendThread(ids[(int) lpParameter]);
 }
 return (DWORD)(int)x;
}

int …
Run Code Online (Sandbox Code Playgroud)

c++ windows multithreading synchronization semaphore

2
推荐指数
1
解决办法
1万
查看次数

在netbeans中停止执行程序的快捷方式

我正在使用netbeans来编写java,我想知道是否有一个选项可以通过按快捷方式来停止程序.我可以按下F6执行程序,但我必须用鼠标来停止程序,我觉得有点烦人.

非常感谢alfred

java netbeans shortcut execution

23
推荐指数
2
解决办法
2万
查看次数

Subversion和ASP.NET网站项目的Bin文件夹

我们正在从VSS转向Subversion,我们在Subversion Repo上有一个网站项目.我们删除了Bin文件夹,因为它导致各种混乱的树冲突,因为我们的开发解决方案包含一些网站项目所依赖的类库项目(在我们的解决方案中设置为项目引用).我们在网站的Bin文件夹中也有几个第三方库DLL.

我们项目的下一阶段涉及设计师修改我们网站的主题.我希望他能够在VS 2005中打开网站项目,在他的工作副本上修改他需要的CSS文件,并在他的localhost上测试他的文件.他需要最新的DLL文件才能让他能够做到这一点.

有没有将Bin文件夹DLL添加到subversion,并配置TortoiseSVN或subversion,以便我们可以提交我们最新的DLL(开发人员的解决方案文件中的项目依赖项),但在更新时忽略它们(我估计每个客户端)?将我们的第三方网站依赖于Subversion也很方便.

svn asp.net tortoisesvn asp.net-2.0

3
推荐指数
1
解决办法
1750
查看次数

如何列出不存在的项目?

标题可能有点令人困惑,让我解释,;)我有3个表:

[names]
n_id;name
1;Jeff
2;Adam

[books]
b_id;title
1;Book1
2;Book2

[read]
n_id;b_id
Run Code Online (Sandbox Code Playgroud)

表[ read ]是一本包含阅读书籍的表格.如果Adam读"Book1",[read]中的项目如下所示:

2;1
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.现在,有没有办法知道一个人没有读过哪些书?我们知道只有亚当读了一本书"Book1",所以查询应输出如下内容:

n_id;name;b_id;title
1;Jeff;1;Book1
1;Jeff;2;Book2
2;Adam;2;Book2
Run Code Online (Sandbox Code Playgroud)

是可以在1个查询中执行此操作还是需要一些脚本?

mysql sql

5
推荐指数
1
解决办法
1519
查看次数

如何在wx.Panel背景上做一个dregradê?

我想为wx.Panel的背景(SetBackgroundColour)着色,用蓝色到黑色的degradê.

我该怎么做?

python wxpython colors panel

1
推荐指数
1
解决办法
1011
查看次数

如何在UIThread上测试Prism事件聚合器订阅?

我有一个课程,通过PRISMs事件聚合器订阅一个事件.

由于这里提到的模拟事件聚合器有点困难,我只是实例化一个真实聚合器并将其传递给被测系统.

在我的测试中,我然后通过该聚合器发布事件,然后检查我的测试系统如何对它做出反应.由于事件将在生产期间由FileSystemWatcher引发,我想通过订阅UIThread来使用自动分派,因此我可以在引发事件后更新我的UI.

问题是,在测试期间,除非我没有订阅UIThread,否则事件永远不会在被测系统中被注意到.

我正在使用MSpec进行测试,我通过TDD.Net从VS2008内部运行.添加[RequiresSta]到我的测试类没有帮助

有没有人有一个解决方案,这使我免于在测试期间更改ThreadOption(例如通过属性 - 这是一个丑陋的黑客)???

tdd prism ui-thread eventaggregator

14
推荐指数
3
解决办法
8895
查看次数

如何实现"双"UITextField?

我试图在这样的视图中生成UITextField.我不介意使用IB或以编程方式进行.

alt text http://echofon.com/img/twitter/iphone/setup.png

iphone cocoa-touch interface-builder

0
推荐指数
1
解决办法
376
查看次数

通过类的属性进行递归

以此示例类为例:

    [AttributeUsage(AttributeTargets.All, AllowMultiple=true)]
public class BugFixAttribute : System.Attribute
{
    public int BugId { get; private set; }
    public string Programmer { get; private set; }
    public DateTime Date { get; private set; }
    public string Comments { get; set; }
    public string RefersTo { get; set; }

    public BugFixAttribute(int bugId = 0, string programmer = "")
    {
        this.BugId = bugId;
        this.Programmer = programmer;
        Date = DateTime.Now;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想回避使用的属性,如:

object[] attr = info.GetCustomAttributes(typeof(BugFixAttribute), false);
foreach (object attribute in attr)
{ …
Run Code Online (Sandbox Code Playgroud)

c# reflection recursion attributes properties

3
推荐指数
1
解决办法
452
查看次数

如何在linux中找到要包含在库函数中的头文件

给定一个函数,让我们说atoi,如果我想使用这个函数,如何找到我应该包含的头文件?我总是对这个问题感到困惑.如果让我把像"atoi"这样的函数视为linux c api,我可以用另一种方式提出我的问题:是linux c api的文档吗?

c linux

8
推荐指数
1
解决办法
1万
查看次数

从munin数据中删除一个样本

我正在使用munin监视postgresql数据库,我做了一次更改,导致munin得到一个糟糕的声音(每秒查询超出正常范围的许多数量级),这搞砸了我的图形.有什么方法可以轻松地从munin数据中删除单个数据点吗?

我想我需要某种rrd编辑器,但我不确定什么是最简单的.恼人的是,数据不只是以明文存储:(

linux monitoring graph

6
推荐指数
2
解决办法
3202
查看次数