我在MonoTouch中使用NSTimer时遇到问题.首先,我在我的主线程中运行了一个NSTimer,它起作用了.但是,我已经将计时器移动到一个单独的线程,我从来没有得到回调.我猜这是因为我的.NET风格线程不是一个运行循环 - 但我对MonoTouch/iOS很新,所以不确定.
我已将代码提取到测试项目并遇到了同样的问题.这是失败的代码:
var thread=new Thread(StartTimer as ThreadStart);
thread.Start();
[Export("StartTimer")]
void StartTimer()
{
using(var pool = new NSAutoreleasePool())
{
timer=NSTimer.CreateRepeatingScheduledTimer(2,delegate { Twitch() } );
Thread.Sleep(1000000); // do I have to yield here somehow?
}
}
void Twitch()
{
Debug.WriteLine("Twitch");
}
Run Code Online (Sandbox Code Playgroud) 假设我有两个列表,我想从中创建一个字典.喜欢:
>>> l = [1, 2, 3, 4, 5]
>>> x = ['a', 'b', 'c']
>>> dict(zip(l, x))
{1: 'a', 2: 'b', 3: 'c'}
Run Code Online (Sandbox Code Playgroud)
这个工程,我会想它和自名单长度不等,元素4和5被排斥在外,并没有对他们没有相应的值.这是预期的.
但是,如果我想要一个值,比如None钥匙l呢?我希望输出为:
{1: 'a', 2: 'b', 3: 'c', 4: None, 5: None}
我认为其中一个解决方案是迭代两者,比较它们的长度并None在需要的地方追加.我有一个可行的解决方案,但我想知道它是否可以以更容易和更短的方式完成?
我远程记住,尝试不存储每个节点的整个数据,只存储父节点的后缀.
树存储整个数据,但只根据前缀组织自己.
因此尝试变得更小,这允许例如非常好地压缩字典.
这真的是唯一的区别吗?
从实际应用程序中我记得尝试在范围查询中更快.甚至还有特殊的solr/lucene trie字段来加速范围查询.但那是怎么回事?
尝试和树木的实际差异是什么,优点和缺点是什么?
如果我在表上创建非聚集索引,SQL服务器是否会在该表中复制数据并将其单独存储?我只想考虑创建非聚集索引的成本.我猜选择索引中使用的密钥会更快,但所有插入,更新和删除都会很慢,因为sql server必须维护两个数据副本.我的理解是否正确?
有没有办法在达到整个脚本结束之前将Select语句的结果强制到SQL Server Management Studio的"输出"窗口?
我有一个快速执行的选择查询,需要一段时间才能执行.我希望在第二个查询运行时查看第一个查询的结果.
我的问题是在两个查询中使用相同的变量,如果使用"GO"语句,变量将丢失.以下示例.
declare @MyVar int
set @MyVar = 1
-- Query with short execution time
select *
from MyTable t
where t.Column = @MyVar
GO -- @MyVar is lost
-- Query with long execution time
select *
from MyOtherTable o
where o.Column = @MyVar -- @MyVar no longer exists
Run Code Online (Sandbox Code Playgroud) 我正在使用REXML构建一个xml文档,并希望以特定方式输出到文本.doc是一个CuePoint标签列表,我用Element.new和add_element生成的那些标签都拼凑成一行如下:( stackoverflow在这里将它们分成两行,但想象下面的全部是一条线):
<CuePoint><Time>15359</Time><Type>event</Type><Name>inst_50</Name></CuePoint><CuePoint><Time>16359</Time><Type>event</Type><Name>inst_50</Name></CuePoint>
当我将它们保存到文件时,我希望它们看起来像这样:
<CuePoint>
<Time>15359</Time>
<Type>event</Type>
<Name>inst_50</Name>
</CuePoint>
<CuePoint>
<Time>16359</Time>
<Type>event</Type>
<Name>inst_50</Name>
</CuePoint>
Run Code Online (Sandbox Code Playgroud)
我尝试将.write函数传递给值2,以缩进它们:这会产生以下结果:
xml.write($stdout, 2)
产生
<CuePoint>
<Time>
15359
</Time>
<Type>
event
</Type>
<Name>
inst_50
</Name>
</CuePoint>
<CuePoint>
<Time>
16359
</Time>
<Type>
event
</Type>
<Name>
inst_50
</Name>
</CuePoint>
Run Code Online (Sandbox Code Playgroud)
这是不需要的,因为它已经将空白插入到只有文本的标签内容中.即Name标签的内容现在是"\n inst_50 \n"或其他东西.这将会破坏读取xml的应用程序.
有谁知道我怎么能按照我想要的方式格式化输出文件?
感谢任何建议,最多
编辑 - 我刚刚通过另一个StackOverflow帖子在ruby-forum上找到答案:http://www.ruby-forum.com/topic/195353
formatter = REXML::Formatters::Pretty.new
formatter.compact = true
File.open(@xml_file,"w"){|file| file.puts formatter.write(xml.root,"")}
Run Code Online (Sandbox Code Playgroud)
这会产生类似的结果
<CuePoint>
<Time>33997</Time>
<Type>event</Type>
<Name>inst_45_off</Name>
</CuePoint>
<CuePoint>
<Time>34080</Time>
<Type>event</Type>
<Name>inst_45</Name>
</CuePoint>
Run Code Online (Sandbox Code Playgroud)
CuePoint标签之间没有额外的界限,但这对我来说很好.我将这个问题留在这里以防万一其他人偶然发现它.
能否请您解释where T : class, new()以下代码行中的含义?
void Add<T>(T item) where T : class, new();
Run Code Online (Sandbox Code Playgroud) 我正在使用Django 1.2.3,PostGIS 1.5.2.
出于某种原因,当我跑
python manage.py syncdb
它从我的模型创建数据库中的所有其他字段,但避免创建一个我命名为PointField的字段.
在我导入的model.py文件中:
from django.contrib.gis.db import models
Run Code Online (Sandbox Code Playgroud)
并评论说:
#from django.db import models
Run Code Online (Sandbox Code Playgroud)
我的模型看起来像这样:
class MyModel(models.Model):
myid = models.AutoField(primary_key=True)
title = models.CharField(max_length=50)
point = models.PointField()
objects = models.GeoManager()
Run Code Online (Sandbox Code Playgroud)
此外,当创建管理员端时,我得到以下错误:
Failed to install index for reports.MyModel model: permission denied for relation spatial_ref_sys
CONTEXT: SQL statement "SELECT SRID FROM spatial_ref_sys WHERE SRID = new_srid"
PL/pgSQL function "addgeometrycolumn" line 74 at SQL statement
SQL statement "SELECT AddGeometryColumn('','',$1,$2,$3,$4,$5)"
PL/pgSQL function "addgeometrycolumn" line 4 at SQL statement
Run Code Online (Sandbox Code Playgroud)
在我的setting.py中,我添加了:
DATABASES = …Run Code Online (Sandbox Code Playgroud) 对于大多数文件类型(例如.cs,.xml,.xslt),VS2010中的"属性"窗口允许用户指定用于转换文件的自定义工具.作为参考,这是选择"自定义工具"字段时获得的工具提示.
指定在设计时转换文件的工具,并将该转换的输出放入另一个文件中.例如,数据集(.xsd)文件附带默认自定义工具.
我正在寻找有关如何设置和使用此属性的信息.
这是我想解决的问题.我正在通过应用XSLT转换和XML文件.描述我在转换过程中使用扩展对象这里.
在这样做的过程中,我使Visual Studio无法用作编辑和调试我的XSLT的工具.我希望我能编写一个简单的转换引擎,它允许我们使用Visual Studio,就像我们对不使用扩展对象的XSLT文档一样.我认为(希望)自定义工具属性是实现此功能的关键.
TIA
我真的很感激,如果曾经处理过Fortune算法生成Delaunay三角剖分的人给我提供了一个相当低级别的算法伪代码!我在维基百科上阅读了一个,但它有点令人困惑,看起来很高级,我能找到的任何代码都有原始的C实现的不便.
我想用C++实现它,但是以某种方式生成的输出是我将要使用的(我自己的)类(顶点,边和三角形作为对象).所以我需要了解所有内容并从头开始实施.
我还阅读了算法的描述,我知道它的作用和方式,但现在仍然是抽象的.但是,我也很高兴在(实现)细节中有类似的描述,它不必像代码一样!
c# ×2
sql-server ×2
algorithm ×1
debugging ×1
dictionary ×1
django ×1
django-admin ×1
generics ×1
indexing ×1
iphone ×1
iterable ×1
nstimer ×1
postgis ×1
pretty-print ×1
pseudocode ×1
python ×1
rexml ×1
ruby ×1
sql ×1
t-sql ×1
timer ×1
tree ×1
trie ×1
xamarin.ios ×1
xml ×1
xslt ×1