小编Dan*_*dor的帖子

进程退出时自动信号量释放

我正在使用Semaphore来限制应用程序可以运行的并发实例的数量.

进程可以通过多种方式终止.可以Semaphore创建它以便在进程退出时自动释放吗?

编辑:

我想要一些魔法来自动清理信号量"提升"状态,以便在退出或崩溃时拥有它.无论如何,只是为了确保它被清除.

更多:

我正在寻找任何可行的选择,考虑:

  • 如果不需要外部应用程序来保护受保护应用程序的每个实例,那将是很棒的
  • 它不一定是信号量 - 任何具有COUNTER并且在所有者进程死亡时自动释放的同步对象都可以,即使它在作弊
  • 我使用的是.NET 2.0,无法在这个项目中移动到更新版本,但是如果有什么东西可以使用c/c ++和inter-op来利用某些东西

.net semaphore process

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

适用于Windows窗体的Windows 7 MultiTouch .NET API

是否有任何用于.NET的Windows 7多点触控功能库?

我是说这个,但有.NET的味道.

但是有一些限制:我需要它用于DESKTOP开发,而对于Windows Forms,我没有WPF.

.net multi-touch windows-7 winforms

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

英特尔 FFT 性能

哪种处理器性能更好,i5-2500K还是对于每秒的某些 FFT 操作(例如:在 16k 缓冲区长度上就地进行复杂的 FFT),i7-960 ?

我这样问是因为我想让所有核心和所有线程饱和,并且由于 i7 有 8 个线程而 i5 只有 4 个线程,所以我主要关心的是 SSE 指令是否能够在所有 8 个逻辑线程上并行运行。

performance benchmarking sse fft

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

将表单呈现为位图

我想将Form渲染为位图......是否可以在.net 2.0中使用?

bitmap .net-2.0 winforms

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

Visual Studio 2010托管的c ++以.NET 2.0问题为目标

对于那些走在这条路上的人,请分享你的面包屑.

我有旧的VS2005解决方案.大多数部分都是c#,但我有一个c ++托管项目.开发机器:Windows XP.目标框架版本:2.0

我将项目移动到Windows 7 64 BIT,VS 2010,进行了项目转换.我注意到的第一件事是构建错误 - 项目取决于c ++中的内容,抱怨所引用的项目具有目标4.0,我想在项目中使用它(正确地)定位2.0.

好的,所以我使用了一些技巧并将我的项目目标设置为.NET 2.0.现在:VS2010抱怨它无法加载项目因为我需要安装framework 2.0.好的,所以我尝试安装它,什么也没做 - 因为安装程序检测到.NET 2.0是操作系统的一部分.

WTF?

管理员,请在这里为我创建WTF标签:)

64-bit c++-cli visual-studio-2010 .net-2.0

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

c#中的运动检测和对象提取?

任何人都可以帮助我检测图像中的移动物体并使用c#将其提取出来?我试图通过从前一个图像中减去图像来提取它们,但这对我不起作用

c# video video-capture video-processing

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

获取公共Internet IP地址/地理位置的智能方式

我在NAT路由器后面的本地网络上有一台计算机.我有一些192.168.0.x地址,但我真的想知道我的公共 IP地址,而不是提到的

如何获取运行我的C#应用​​程序的服务器的IP地址?

要么

如何在C#中获取机器的IP地址

我需要C#代码.

可能吗?如果是这样,怎么样?

.net c# ip-address geolocation

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

StreamTheWorld.net的音频流协议

我试图从streamtheworld下载和捕获音频流,到目前为止我发现的只是它使用HTTP协议,并且内部可以看到一些FLV标题.但是,它不可玩.

我会很感激有关它的任何信息.运输(http),容器,编码,欢迎任何信息.

这种音频流的一个例子:

http://player.streamtheworld.com/_players/arn/index.php?callsign=VIRGINRADIO_DUBAI

audio-streaming

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

如何将这个双foreach循环转换为lambdas?

这是一种方法,这些foreach循环只有一个 lambda表达式?

    private int getNextEventId()
    {
        int numOfEvents = 0;

        foreach (MonthModel eventMonth in eventsForAllMonths)
        {
            foreach (DayModel eventDay in eventMonth.AllDays)
            {
                numOfEvents += eventDay.CalEvents.Count;
            }
        }

        return numOfEvents + 1;
    }
Run Code Online (Sandbox Code Playgroud)

c# linq foreach lambda

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

我是如何解决这个内存泄漏问题的?

我有一个.net 2.0应用程序,它做了一些繁重的处理,使用大量的内存,并做了一些.它从Web服务中获取任务,完成任务,返回结果,并将所有内容重复到无穷大.

由此可以简化和说明主代码结构

while (true) 
{
     Task t=ServiceAccess.GetTask();
     if (t.TaskType == 1)
     {
          BrutalMemoryConsumerProcessor b=new BrutalMemoryConsumerProcessor();
          b.DoTask(t);
     } 
     else if (t.TaskType == 2)
     {
          HeavyCPUConsumerProcessor h=new HeavyCPUConsumerProcessor();
          h.DoTask(t);
     }
}
Run Code Online (Sandbox Code Playgroud)

幸运的是,它OutOfMemoryException在内部代码的某个地方经过几个周期后就死了.这是因为两个对象都经过校准,几乎可以使用所有的RAM(对于x86应用程序),并且在创建新对象实例时使用旧对象实例是一个可靠的方法来消除进程.

好的,所以我先尝试了一些技巧.即:

GC.Collect();
Run Code Online (Sandbox Code Playgroud)

在循环开始时,就在之后while (true).

没运气.

接下来,我想起了老VB6基于COM的日子,并试图b = null;h = null;该范围内的if语句块.

没有运气了.

结合,没有骰子.

解雇了一个内存分析器.我有一段时间没有使用它,所以我需要浏览几页"程序文件"才能找到它.它是YourKit Profiler.好玩具......

无论如何,在经过一些干预后,它告诉我引用bh保留在本地"堆栈范围"内.所以我做了猴子会做的事情,并在上面重写为:

while (true) 
{
     Task t=ServiceAccess.GetTask();
     if (t.TaskType == 1)
     {
          DoTaskType1(t);
     } 
     else if (t.TaskType == 2)
     { …
Run Code Online (Sandbox Code Playgroud)

.net c# memory-leaks .net-2.0

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