问题列表 - 第18239页

关于锁性能/使用的2个问题

在服务器应用程序上,我需要为每个连接的客户端分配一个唯一的ID,所以我这样做:

private short GetFreeID()
{
    lock (this.mUsedPlayerIDsSynchronization)
    {
        for (short I = 1; I < 500; I++)
        {
            if (ClientIDPool[I] == false)
            {
                ClientIDPool[I] = true;
                return I;
            }
        }
        return -1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的第一个问题:能否更有效地完成,我的意思是更好的表现?我在这里读过,我们应该学会编写没有锁的代码.我还在那里阅读了一些原子操作还有其他选择.第二个问题:如果我想锁定整个课程以便不允许在其中进行任何更改,该怎么办?例如:一个客户端将更新第二个客户端数据,我可以锁定它被绝对阻止的整个第二个客户端类吗?我仍然认为"锁定"只会确保其片段中的代码当时只被一个线程输入,所以我不知道"lock(client2)"是否导致该类中的任何内容都无法更改,直到此锁定为止释放.

c# multithreading locking

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

Python在"u11-Phrase 101.wav"之前排序"u11-Phrase 1000.wav"; 我怎么能克服这个?

我在win 32上运行Python 2.5(r25:51908,2006年9月19日,09:52:17)[MSC v.1310 32位(英特尔)]

当我问Python时

>>> "u11-Phrase 099.wav" <  "u11-Phrase 1000.wav"
True
Run Code Online (Sandbox Code Playgroud)

没关系.当我问

>>> "u11-Phrase 100.wav" <  "u11-Phrase 1000.wav"
True
Run Code Online (Sandbox Code Playgroud)

那也没关系.但是,当我问

>>> "u11-Phrase 101.wav" <  "u11-Phrase 1000.wav"
False
Run Code Online (Sandbox Code Playgroud)

因此根据Python"u11-Phrase 100.wav"出现在"u11-Phrase 1000.wav"之前,但"u11-Phrase 101.wav"出现在"u11-Phrase 1000.wav"之后!这对我来说是有问题的,因为我正在尝试编写文件重命名程序,这种排序会破坏功能.

我该怎么做才能克服这个问题?我应该编写自己的cmp函数并测试边缘情况,还是有一个更简单的快捷方式来给我我想要的顺序?

另一方面,如果我修改字符串,如

>>> "u11-Phrase 0101.wav" <  "u11-Phrase 1000.wav"
True
Run Code Online (Sandbox Code Playgroud)

但是这些字符串来自目录的文件列表,例如:

files = glob.glob('*.wav')
files.sort()
for file in files:
    ...
Run Code Online (Sandbox Code Playgroud)

所以我不想在它们被glob创建后对字符串进行外科手术.不,我也不想更改该文件夹中的原始文件名.

任何提示?

python sorting

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

用C#轻松画出空心圆环形状的任何方法

所以就像一个graphics.FillEllipse,但中间有一个洞.我需要通过在它们周围放一个环来突出显示一些圆形图标,并且由于较大程序的限制,很难/不可能简单地将FillEllipse放在它们下面以使它看起来像是一个洞.

c#

4
推荐指数
2
解决办法
4529
查看次数

ImageButton标题标签

在使用AlternateText属性的ImageButton上,向浏览器呈现alt标记.

<asp:ImageButton ID="imagebuttonStuff" runat="server" OnClick="imagebuttonStuff_Click" AlternateText="Make Stuff Happen" ImageUrl="/images/icons/stuff.png" />

<input type="image" name="imagebuttonStuff" id="imagebuttonStuff" src="/images/icons/stuff.png" alt="Make Stuff Happen" />
Run Code Online (Sandbox Code Playgroud)

如何呈现标题标签?

asp.net imagebutton

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

已挂载文件系统的LVM快照

我想以编程方式在Linux中制作实时文件系统的快照,最好使用LVM.我不想卸载它,因为我已经打开了很多文件(我最常见的情况是我有一个繁忙的桌面有很多程序).

我理解,由于内核缓冲区和一般文件系统活动,磁盘上的数据可能处于某种或多或少的未定义状态.

有没有办法"原子地"卸载FS,制作LVM快照并将其挂载?如果操作系统将阻止所有活动几秒钟来执行此任务,那就没问题.或者也许某种原子"同步+快照"?内核通话?

我不知道是否有可能......

linux filesystems backup snapshot

5
推荐指数
3
解决办法
8874
查看次数

适用于企业环境的DVCS有多合适?

我一直在使用SVN已经有一段时间了,我对它的工作方式非常满意(但我不能说我是专家,而且我在分支和合并方面做得并不多).然而,有机会在一个新的团队中加入一些新的实践,所以我想我会看看DVCS,看看它是否值得跳跃.

我工作的公司是一家非常标准的公司,我们都在同一地点(或有时在家里)工作,我们希望保留所有代码的中央存储.

我的问题是:如果您正在使用DVCS创建一个每个人都推动其更改的中央集线器,那么在这种环境中转移到DVCS及其额外开销是否真的有什么好处?

version-control dvcs

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

ExcelPackage和98,000行

我想用codeplex excelpackage写一个excel文件(2007),但是要花很多时间编写excel文件.我没有找到任何可以接受数据源的方法.

我的代码片段:

var newFile = new FileInfo(GlobalVariables.Compare2007Path);

using (var excelpackage = new ExcelPackage(newFile))
{
  var myWorkbook = excelpackage.Workbook;
  myWorkbook.Worksheets.Add("sheetname");

  var xlWorkSheet = xlWorkBook.Worksheets["sheetname"];

  //loop the data and fill the columns
  var rowCount = 2;
  foreach (var compare in objCompare)
  {
    xlWorkSheet.Cell(rowCount, 1).Value = compare.adserverIdSite.ToString();
    xlWorkSheet.Cell(rowCount, 2).Value = compare.site;
    xlWorkSheet.Cell(rowCount, 3).Value = compare.adserverIdZone.ToString();
    xlWorkSheet.Cell(rowCount, 4).Value = compare.zone;
    xlWorkSheet.Cell(rowCount, 5).Value = compare.position;
    xlWorkSheet.Cell(rowCount, 6).Value = compare.weekday;
    xlWorkSheet.Cell(rowCount, 7).Value = compare.oldimps.ToString();
    xlWorkSheet.Cell(rowCount, 8).Value = compare.olduu.ToString();
    xlWorkSheet.Cell(rowCount, 9).Value = compare.oldimpsuu.ToString();
    xlWorkSheet.Cell(rowCount, 10).Value = …
Run Code Online (Sandbox Code Playgroud)

c# excel excelpackage

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

用ruby中的数字连接字符串

我是红宝石的初学者,所以这是一个非常新手的问题.

我试图连接一个字符串与浮动值,如下所示,然后打印它.

puts " Total Revenue of East Cost: " + total_revenue_of_east_cost 
Run Code Online (Sandbox Code Playgroud)

total_revenue_of_east_cost是一个保持浮点值的变量,我怎样才能打印?

ruby

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

Android - 拖放 - 列表重新排列

如何创建一个列表,我可以通过将列表行拖动到另一行来重新排列列表项,依此类推(更改为订单)?

就像在时钟应用程序中的HTC Hero,您可以重新排列时钟的顺序?

android drag-and-drop list

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

NVelocity没有找到模板

我在ASP.NET MVC应用程序中使用NVelocity时遇到了一些困难.我正在使用它作为生成电子邮件的方式.

据我所知,我传递的细节都是正确的,但无法加载模板.

这是代码:

private const string defaultTemplatePath = "Views\\EmailTemplates\\";
Run Code Online (Sandbox Code Playgroud)

...

velocityEngine = new VelocityEngine();
basePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, defaultTemplatePath);
ExtendedProperties properties = new ExtendedProperties();
properties.Add(RuntimeConstants.RESOURCE_LOADER, "file");
properties.Add(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, basePath);
velocityEngine.Init(properties);
Run Code Online (Sandbox Code Playgroud)

basePath是正确的目录,我已将值粘贴到资源管理器中以确保它是正确的.

if (!velocityEngine.TemplateExists(name))
    throw new InvalidOperationException(string.Format("Could not find a template named '{0}'", name));


Template result = velocityEngine.GetTemplate(name);
Run Code Online (Sandbox Code Playgroud)

上面的'name'是上面定义为basePath的文件夹中的有效文件名.但是,TemplateExists返回false.如果我注释掉条件输出并让它在GetTemplate方法调用上失败,那么堆栈跟踪如下所示:

   at NVelocity.Runtime.Resource.ResourceManagerImpl.LoadResource(String resourceName, ResourceType resourceType, String encoding)
   at NVelocity.Runtime.Resource.ResourceManagerImpl.GetResource(String resourceName, ResourceType resourceType, String encoding)
   at NVelocity.Runtime.RuntimeInstance.GetTemplate(String name, String encoding)
   at NVelocity.Runtime.RuntimeInstance.GetTemplate(String name)
   at NVelocity.App.VelocityEngine.GetTemplate(String name)
...
Run Code Online (Sandbox Code Playgroud)

我现在陷入了一些僵局.我觉得答案很明显,但我现在似乎无法看到它.

asp.net nvelocity

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