问题列表 - 第20120页

如何在德尔福开始构建可搜索的垃圾收集器(2009-2010)

我正在寻找一种方法来控制我在用Delphi编写的应用程序中创建的所有业务对象.

正如关于Embarcadero的EDN(http://edn.embarcadero.com/article/28217)的文章所述,基本上有三种方法可以做到这一点.我最感兴趣的是使用接口的最后一个.这样,当业务对象不再被应用程序中的任何地方引用时,它将被处理内存(稍后我将回到这一部分).

在创建新的业务对象时,最好先询问新的对象管理器是否已在程序中先前获取它,从而避免需要从数据库中重新获取它.我已经将内存中的业务对象,所以为什么不使用那个呢?因此,我需要内存中可用对象的列表可以搜索(快速).

提供的代码使用"TObject数组"来存储收集的对象,一旦达到一定数量,这对于搜索对象列表不会非常有效.我必须将其更改为TObjectList或某种二进制可搜索树.这里最好的选择是什么?我已经在http://www.ibrtses.com/delphi/binarytree.html找到了一些有用的代码(我认为).JCL在二叉树上没有东西吗?

我该如何处理该树中的"业务对象"和"业务对象列表"?作为列表一部分的业务对象是否会在树中引用两次?

关于处理对象:我还想为该业务对象设置某种TTL(生存时间),在一定时间后强制重新获取.如果引用计数器降到0,我仍然希望将对象保留一段时间,如果程序仍然需要它在TTL内.这意味着我需要排序一些线程监视器来循环对象列表(或树)以监视要删除的对象.

我还遇到了Boehm垃圾收集器DLL(http://codecentral.embarcadero.com/Download.aspx?id=21646).

简而言之,将我的"对象管理器"作为EDN文章中提供的源代码的基础是明智的吗?我想要将对象存储在哪种列表中?我该如何处理列表中的对象列表?我是否应该将我的对象保留在内存中一段时间​​并通过线程监视器进行处理?

我的推理是否正确?在开始编码之前有任何建议,想法或评论吗?也许一些新想法融入我的代码?

顺便说一下,一旦有些聪明的头脑想出来,我会很乐意分享结果,让别人受益.

日Thnx.

delphi garbage-collection delphi-2009 delphi-2010

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

有没有办法从未完成的UIView动画中获得位置(或中心)状态?

我有一个UIView做一个简单的动画.它将y位置从100调整到130然后反转.我希望它继续重复,所以我将重复计数器设置为999.在用户输入时,我想采用相同的UIView并调整x位置.这是通过另一个UIView动画完成的.问题是,当第二个动画开始时,第一个动画(在y方向从100到130)刚刚突然结束(因为我读到它应该).有没有办法在UIView结束之前获得该UIView的y坐标的最终位置?理想情况下,我希望UIView保持在我翻译x坐标时所处的y位置.

摘要:UIView在y方向上从100-130移动,反转并重复直到收到用户输入.收到后,动画缩短,UIView跳到y = 130.我想找到一种方法来找出动画被缩短之前的最终y值是什么,所以当使用带有x平移的新动画时,UIView不会跳到130,但保持与第1个时相同的位置动画结束了.

我似乎无法看到任何可以让你这样做的东西.在我看来,一旦你使用UIView设置动画,那么它(以及所有当前的状态变化)都不在您的手中,只有在完成动画并且在指定时才会"返回"您的控件和可用性终点.它是否正确?任何见解将不胜感激.感谢您的时间.

iphone animation cocoa-touch objective-c uiview

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

是否有任何理由将匿名JavaScript函数包装在大括号中?

var a = function () {
    return 'test';
}();

console.log(a);
Run Code Online (Sandbox Code Playgroud)

第一种情况的答案:测试

var a = (function () {
    return 'test';
})();

console.log(a);
Run Code Online (Sandbox Code Playgroud)

第二种情况的答案:测试

我正在使用第一种方法来创建自动执行功能.但是,我也看到了第二种方法.这两种方法有什么不同吗?结果显然是一样的.

javascript

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

concat两列在一个select语句sql server 2005中

如何在一个select语句sql server 2005中concat两列?

这是我的发言Select FirstName,secondName from Table......

现在,我也尝试concating secondNameFirstName使用

Select FirstName + ' ' + secondName from Table
Run Code Online (Sandbox Code Playgroud)

但是有些值NULL在某些记录的secondName列中.我的select语句返回NULL而不是FirstName..我希望FirstName如果secondName是NULL..

select concat sql-server-2005

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

Ruby中元类的Base和Derived类之间的关系是什么?

在Ruby中,我们可以使用supersingleton方法来调用相应的超类的单例方法,如下面的代码所示.

class Base
  def self.class_method
    puts "Base class method"
  end
end

class Derived < Base
  def self.class_method
    puts "Derived class method"
    super
  end
end

Derived.class_method
# Derived class method
# Base class method
Run Code Online (Sandbox Code Playgroud)

但是,我似乎并不完全了解super内部的呼吁Derived.class_method可以达到的程度Base.class_method.我假设它class_method是在他们的元类上定义的,这是否意味着他们的元类有父/子关系?(我无法通过实验确认)

更新:我问的是这个问题,因为我记得在某个地方看到基地和派生类'元类之间存在某种关系(但我再也找不到了).除了知道实际如何super工作之外,我还想确认这两个元类是否完全分开.

ruby metaprogramming metaclass

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

我们应该尝试在网站中使用所有H1到H6吗?

我们应该在网站上使用所有H1到H6吗?

我通常使用h1到h2.现在如何判断和决定H3到h6的使用位置.

我们应该这样使用吗?

h3 {display:inline}

<div id="content">
  <h3> some text in bold:</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
        sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
         </p>
  <h3> some text in bold:</h3>
      <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
        sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
         </p>
</div>
Run Code Online (Sandbox Code Playgroud)

或这个

span {font-weight:bold}

<div id="content">
  <p><span> some text in bold:</span>
    Lorem ipsum dolor sit amet, 
    consectetur adipisicing elit, sed do eiusmod tempor …
Run Code Online (Sandbox Code Playgroud)

css xhtml accessibility

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

你如何确定while循环的Big-O表示法?

下面是二进制搜索功能.

int search(int a[], int v, int left, int right)
{
    while (right >= left)
    {
        int m = (left + right)/2;
        if (v == a[m]) 
            return m;
        if (v < a[m])
            right = m - 1;
        else left = m + 1;
    }
    return -1;
}
Run Code Online (Sandbox Code Playgroud)

如何确定此函数的Big-O表示法?

这个搜索函数是否为O(n),因为while循环依赖于left的值?

big-o

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

如何使用正则表达式验证月份输入?

我正在设置此示例Perl片段以验证日期中的几个月:

我想接受的一些场景是:

MM M

#!/usr/bin/perl
use strict;
use warnings;

my $pattern;
my $month = "(0[1-9]|1[012])";
my $day = "(0[1-9]|[12]\d|3[01])";

system("cls");

do {

    print "Enter in a month: ";
    chomp($pattern = <STDIN>);

    # We only want to print if the pattern matches
    print "Pattern matches\n" if ($pattern =~ /$month/);


} while ($pattern ne "Q");
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它正确地从01-12过滤但是当我将正则表达式更改为:

$month = "(0?[1-9]|1[012])";
Run Code Online (Sandbox Code Playgroud)

然后正则表达式允许13,14等...给出了什么?

regex perl

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

使用git子树合并,同时也合并所有合并子树的所有分支

我想使用一个流行的开源问题跟踪器(Redmine)来提供git集成.不幸的是,跟踪器中的每个项目只能与一个git仓库相关联.在跟踪器中创建多个项目不是我理想的设置.

考虑到这一点,我试图使用git子树合并(在这里解释,这里).我已经创建了一个"伞形"仓库,它已合并到我正在使用的众多其他仓库中.

遗憾的是,给出的示例仅引入每个子树的主分支.由于我在每个子树的多个分支中进行开发,我需要学习如何使用这个伞形回购反映每个子树的每个分支.

这可能吗?

额外信用:如果2个子树每个都有一个同名的分支怎么办?

git merge subtree redmine

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

更新xml文件中的值

我有一个xml文件:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
  <level>
    <node1 />
    <node2 />
    <node3 />
  </level>
</root>
Run Code Online (Sandbox Code Playgroud)

在node1,node2,node3中插入值的最简单方法是什么?

C#,Visual Studio 2005

c# xml

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