小编Ste*_*eld的帖子

限制一次执行方法的线程数

我们有一种情况,我们希望限制应用程序可以对其应用程序服务器进行的并行请求的数量.我们有可能运行100多个后台线程,它们希望在某些时候调用应用程序服务器,但只希望5个线程能够在任何时候调用SendMessage()(或任何方法).实现这一目标的最佳方法是什么?

我考虑过使用某种类型的网守对象来阻止进入该方法的线程,直到在其中执行的线程数已经降到阈值以下.这是一个合理的解决方案还是我忽略了这可能是脏/危险的事实?

我们正在使用C#.NET 3.5进行开发.

谢谢,

史蒂夫

.net c# multithreading asynchronous locking

15
推荐指数
2
解决办法
5713
查看次数

是否可以在.htaccess文件中输出任何或所有可用变量?

我正在尝试使用一些重写规则构建一个.htaccess文件,并且想知道处理我的请求时实际包含的几个变量.有没有看到Apache处理请求时它们的值是什么?

例如打印内容 %{HTTP_USER_AGENT}

apache .htaccess

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

在SQL语句中选择比较结果

我如何实现以下目标:

select (1 < 2) as One, (1 > 2) as Two
Run Code Online (Sandbox Code Playgroud)

这样它会产生以下结果:

One     Two
-----------------
True    False
Run Code Online (Sandbox Code Playgroud)

我正在使用SQL Server,但跨DBMS示例会很好.

sql

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

保证信号量顺序?

.NET Semaphore类的文档声明:

没有保证的顺序,例如FIFO或LIFO,其中被阻塞的线程进入信号量.

在这种情况下,如果我想要保证订单(FIFO或LIFO),我的选择是什么?这是不容易实现的事情吗?我必须写自己的信号量吗?我认为那会很先进吗?

谢谢,

史蒂夫

.net c# multithreading asynchronous semaphore

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

使用ASP.NET和IIS进行多线程处理

我们有一个Web应用程序,需要处理大量数据并将消息推送到一系列MSMQueue.此操作可能需要超过10分钟,但我们希望快速回复(由ID组成).因此,我们已经实现了一个系统,该系统生成ID并在单独的线程上启动推送过程,然后返回ID.

这工作正常,但我们唯一关心的是重新启动IIS.我们做了一些测试,即使我们的线程没有完成排队消息,IISRESET也会杀死工作线程.理想情况下,我们希望以我们的线程将继续运行直到它完成的方式重新启动IIS.

将/ NOFORCE开关传递给IISRESET似乎没有任何效果.

有没有人知道我们可以确保IISRESET在重新启动IIS之前等待我们的工作线程完成其处理的方式.

谢谢,

史蒂夫

asp.net iis multithreading

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

来自非托管代码的System.AccessViolationException?

我正在编写这个库,它通过Media Foundation框架在C++/CLI中实现一些基本的音频播放器功能,这些功能将由托管代码使用.我可以播放音频,停止,暂停等等.对于不熟悉Media Foundation的任何人,媒体会话都会发布您可以处理通知的事件.这是通过使用IMFAsyncCallback对象在会话对象上调用BeginGetEvent来完成的.IMFAsyncCallback定义了应该实现的方法Invoke(IMFAsyncResult)来处理事件.发生事件时,调用方法由工作线程上的会话对象调用,该工作线程具有可以查询事件信息的IMFAsyncResult对象.此结果对象由事件线程创建并拥有.

在我的Invoke实现中,每当我尝试用我传递的IMFAsyncResult对象做任何事情(包括只调用QueryInterface或其他东西)时,我都会得到一个System.AccessViolationException.我实现IMFAsyncCallback的对象是在CRT堆上分配的基本C++类(未托管),并且事件发布在也在CRT堆上分配的会话对象拥有的线程上.

  1. 可能导致此异常的原因是什么?

  2. 为什么我从普通旧C++实现的代码中抛出.NET托管异常?这就是当你有一个混合模式组件时会发生什么?

.net c++-cli access-violation visual-c++ ms-media-foundation

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

无提示安装参数被忽略,InstallShield 2009

我刚刚从一个离开的人(哦欢乐)继承了一个InstallShield 2009项目,并且我试图让setup.exe以静默模式运行.该项目是一个基本MSI项目,根据文档,我应该能够指定/ s开关与/ v/qn结合使安装程序和MSI进程无声.但是,当我这样做时,该过程正常显示所有对话框.我已经尝试使用/ r开关生成一个应答文件,但这无法产生setup.iss任何地方的任何标志(我检查了windows文件夹,这显然是它的位置).

为什么进程会忽略静默命令?我在安装日志中看不到任何指示问题的内容......我使用的命令行是这样的:

setup.exe/s/v/qn

我尝试过各种大小写组合无济于事.任何意见,将不胜感激.

史蒂夫

编辑:

我也尝试过:

setup.exe/s/v"/ qn"

哪个也行不通.

编辑2:

值得指出的是,安装程序正在执行并从先前版本的产品升级到更新版本.弹出的第一个对话框是"提取msi"对话框,后跟"欢迎升级"对话框.

installshield installshield-2009

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