问题列表 - 第7727页

有没有办法等待多个信号量

我正在尝试编写一个可以同时等待多个资源池的应用程序.每个资源池由a控制Semaphor.我可以使用WaitHandle.WaitAll()我传递给整个信号列表的地方吗?此实现是否存在潜在的死锁问题?

我目前的实施:

namespace XXX
{
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading;

    public class ResourcePoolManager
    {
        private readonly IDictionary<string, Semaphore> resourcePools = new Dictionary<string, Semaphore>();

        public void AddResourcePool(string resourceName, int maxConcurrentConsumers)
        {
            this.resourcePools.Add(resourceName, new Semaphore(maxConcurrentConsumers, maxConcurrentConsumers));
        }

        public void RequestResource(string resourceName)
        {
            this.resourcePools[resourceName].WaitOne();
        }

        public void RequestMultipleResources(string[] resourceNames)
        {
            Semaphore[] resources = resourceNames.Select(s => this.resourcePools[s]).ToArray();

            WaitHandle.WaitAll(resources);
        }

        public void ReleaseResource(string resourceName)
        {
            this.resourcePools[resourceName].Release(1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading

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

如何拥有自动递增版本号(Visual Studio)?

我想存储一组在构建时自动递增的整数:

int MajorVersion = 0;
int MinorVersion = 1;
int Revision = 92;
Run Code Online (Sandbox Code Playgroud)

当我编译时,它会自动增加Revision.当我构建安装项目时,它会增加MinorVersion(我可以手动执行此操作).MajorVersion只会手动增加.

然后我可以在菜单Help/About中向用户显示版本号:

  Version: 0.1.92

怎么能实现这一目标?

这个问题不仅要求如何使用自动递增版本号,还要求如何在代码中使用它,这是一个比其他更完整的答案.

c# versioning visual-studio

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

如何禁用文本选择突出显示?

对于像按钮一样的锚点(例如,Stack Overflow页面顶部的问题,标签,用户等)或标签,如果用户意外选择了文本,是否有一种CSS标准方法来禁用突出显示效果?

我意识到这可以通过JavaScript来完成,并且有点谷歌搜索产生了仅Mozilla -moz-user-select选项.

是否有符合标准的方法来实现CSS,如果没有,那么"最佳实践"方法是什么?

css cross-browser highlight textselection

4937
推荐指数
43
解决办法
179万
查看次数

SQL Server中的LDF文件是什么?

SQL Server中的LDF文件是什么?它的目的是什么?

我可以安全地删除吗?或减小其大小,因为有时它比数据库文件mdf大10倍.

sql-server

64
推荐指数
4
解决办法
17万
查看次数

Internet Explorer忽略了CSS中设置的非常小的高度

我有CSS看起来像这样......

.ColorSeparatorArea
{
    background-color: #3d3d77;
    height: 1px;
}
Run Code Online (Sandbox Code Playgroud)

...然后我将该样式应用于DIV元素:

<div class="ColorSeparatorArea"></div>
Run Code Online (Sandbox Code Playgroud)

它在非IE浏览器中工作正常,但在IE中,它将div的高度设置为一行文本的高度,它不会让我更小.有谁知道如何解决这个问题?

html css internet-explorer

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

通过公共列组合2个.csv文件

我有两个.csv文件,其中文件1中的第一行是:

MPID,Title,Description,Model,Category ID,Category Description,Subcategory ID,Subcategory Description,Manufacturer ID,Manufacturer Description,URL,Manufacturer (Brand) URL,Image URL,AR Price,Price,Ship Price,Stock,Condition
Run Code Online (Sandbox Code Playgroud)

文件2的第一行:

Regular Price,Sale Price,Manufacturer Name,Model Number,Retailer Category,Buy URL,Product Name,Availability,Shipping Cost,Condition,MPID,Image URL,UPC,Description
Run Code Online (Sandbox Code Playgroud)

然后每个文件的其余部分都填充了信息.

如您所见,两个文件都有一个名为MPID的公共字段(文件1:col 1,文件2:col 9,其中第一个col为col 1).

我想创建一个新文件,通过查看这个列来组合这两个文件(如:如果两个文件中都有一个MPID,那么在新文件中,这个MPID将出现在文件1的两行中)和它在文件2中的行.如果一个MPID只出现在一个文件中,那么它也应该进入这个组合文件.

文件未以任何方式排序.

如何在带有shell脚本或python的debian机器上执行此操作?

谢谢.

编辑:两个文件除了分隔字段之外没有逗号.

python csv shell debian join

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

C#类命名约定:是BaseClass还是ClassBase或AbstractClass

命名基类的推荐方法是什么?它是否在类型名称前加上" Base "或" Abstract ",或者我们只是用"Base"作为后缀?

考虑以下:

type:ViewModel例如MainViewModel,ReportViewModel

基类:BaseViewModelViewModelBaseAbstractViewModel

还要考虑:

type:Product例如VirtualProduct,ExpiringProduct

基类:BaseProductProductBaseAbstractProduct

您认为哪个更标准?

class Entity : EntityBase
{
}
Run Code Online (Sandbox Code Playgroud)

要么

class Entity : BaseEntity
{
}
Run Code Online (Sandbox Code Playgroud)

c# naming-conventions base-class

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

无法理解C#中的用户控件

我是usercontrols的新手,到目前为止只创建了一个,所以请耐心等待.我今天一直在阅读用户控件应该是自包含的,而不是依赖父容器中的任何信息.我得到了那个部分,但我理解的是那种围绕这个原则设计我的程序的"正确"方法.

我在C#中创建一个Web表单,其中有一个页面在该页面中有一个usercontrol.我在其ascx文件中创建了usercontrol并将其拖入我的aspx页面.usercontrol是几个日期框和gridview,用于显示SQL存储过程的结果.

我真的想重用这个控件,但我无法弄清楚如何"告诉"用户控件我想要为我所在的特定页面运行哪些存储过程而不违反"不依赖"父容器"规则.

谢谢

c# user-controls design-principles

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

Delphi:检测窗口移动的开始和结束

我正在使用OnIdle事件来制作一些简单的动画,它可以正常工作.但问题是,当用户开始移动窗口或调整窗口大小时,OnIdle事件将停止触发,直到移动/调整大小操作完成.

我需要检测何时发生这种情况,以便我可以暂停所有动画.但是如何检测窗口的移动?

delphi window

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

转换SVN结帐以使用git(git-svn)

我使用svn中保存的软件进行版本控制.我想使用git(git-svn),但软件需要大量的设置和配置才能使用.有一些工具可以处理所有设置,包括通过svn检出所有代码.

git-svn的所有文档(我已经能够找到)需要使用git-svn进行新的检查.

有没有办法转换现有的svn结账,以便它可以使用git-svn?

svn git git-svn git-checkout svn-checkout

31
推荐指数
2
解决办法
9298
查看次数