我们在Canvas中生成了一系列矩形,它们按照以下顺序嵌套ScrollView> Canvas> VirtualizingStackPanel> XAML中的矩形.
微软似乎很少有关于支持哪种senarios虚拟化的信息,并且在没有引发错误的情况下,它只会将其视为标准的StackPanel.
鉴于我们的视图在整个画布上总共大约800个屏幕上的任何时间都有大约60个矩形,大约5分钟的加载时间是不可接受的慢.
我们已经尝试删除ScrollView没有效果(除了删除滚动条,性能没有提高),并删除一些其他嵌套元素,净效果似乎没有显示,或显示但仍然慢.
到目前为止,我发现了一个免费软件代码VirtualizedCanvas的最佳解决方案,但它非常有限并且不支持嵌套在其中的任何内容,实际上它所采用的唯一输入是UI元素的集合.
这个解决方案基本上忽略了数据绑定,并且需要您将完成的Canvas传递给它,这使得我们现有的所有代码和转换器都变得毫无用处,并且将是实现的主要返工.
有没有办法简单地剪辑虚拟化画布只绘制我们的60屏幕项目?
我正在写字符串到临时文件(temp.txt),我希望在我关闭该文件后打开我应该删除的awt窗口按钮后打开该文件(打开该文件后),我该怎么做?
这是我用来在Java中创建临时文件的代码:
File temp = File.createTempFile("temp",".txt");
FileWriter fileoutput = new FileWriter(temp);
Bufferedwriter buffout = new BufferedWriter(fileoutput);
Run Code Online (Sandbox Code Playgroud) 我正在研究一个简单的构建脚本,它应该从java类文件中获取一些常量,并将它们用作我文件名中的版本号.我使用Eclipse和它自己的Ant,但是将bcel-5.2.jar放在我的libs文件夹中并放入Ant调用的类路径中.
<target name="generate_version" depends="compile">
<loadproperties srcfile="${dir.dest}/MyVersion.class">
<classpath>
<fileset dir="${dir.libs}">
<include name="**/bcel*.jar"/>
</fileset>
</classpath>
<filterchain>
<classconstants/>
</filterchain>
</loadproperties>
</target>
Run Code Online (Sandbox Code Playgroud)
但不幸的是,ant任务loadproperties失败了:
build.xml:46: expected a java resource as source
Run Code Online (Sandbox Code Playgroud)
之后我尝试使用此命令行从Eclipse外部运行Ant:
set ANT_HOME=C:\Program Files\Java\ant\apache-ant-1.7.1
"%ANT_HOME%\bin\ant.bat"
Run Code Online (Sandbox Code Playgroud)
结果是
Buildfile: build.xml
init:
[echo] Building project.
[echo] ant.home: C:\Program Files\Java\ant\apache-ant-1.7.1
[echo] ant.java.version: 1.6
[echo] ant.version: Apache Ant version 1.7.1 compiled on June 27 2008
compile:
[javac] Compiling 262 source files to **********\build
[javac] Note: Some input files use or override a deprecated API.
[javac] …Run Code Online (Sandbox Code Playgroud) 我有一个存储一些时间戳的mysql数据库.我们假设表中的所有内容都是ID和时间戳.时间戳可能重复.
我想找到不重复的连续行之间的平均时差(按时间).有没有办法在SQL中执行此操作?
我想以(r,g,b)元组的形式生成一个颜色规范列表,它跨越整个色谱,包含我想要的多个条目.所以对于5个条目我想要的东西像:
当然,如果有比0和1的组合更多的条目,它应该转向使用分数等.最好的方法是什么?
如果我有一个矩阵作为行列表[[1,2,3],[4,5,6]],我想返回第一列,[1,4].我是Haskell的绝对初学者,我甚至不知道如何处理嵌套列表.
我已多次尝试让我的WCF服务公开MetaData.相反,我一直保持例外:
在服务SecurityBroker实现的合同列表中找不到合同名称"IMetadataExchange" .将ServiceMetadataBehavior直接添加到配置文件或ServiceHost以启用对此合同的支持.
...使用IE手动浏览服务时.
(我假设这与我的客户端应用程序无法生成服务引用的原因相同.婴儿步骤和所有)
然而我的web.config看起来还不错:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<behaviors>
<endpointBehaviors>
<behavior name="webHttpEnablingBehaviour">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="webHttpEnablingBehaviour">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="IWW.MIGTurbo2.WCF.Security.SecurityBroker">
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
<endpoint address=""
binding="webHttpBinding"
bindingConfiguration="default"
contract="IWW.MIGTurbo2.WCF.Security.ISecurityBroker"
behaviorConfiguration="webHttpEnablingBehaviour">
</endpoint>
</service>
</services>
<client />
<bindings>
<webHttpBinding>
<binding name="default" />
</webHttpBinding>
</bindings>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
所以我的meetadataExchange合约定义为mex很好,并且我已经看到了.我错过了什么愚蠢的东西?
编辑
如果有用,我的服务定义如下所示:
<%@ ServiceHost Language="C#" Debug="true" Service="IWW.MIGTurbo2.WCF.Security.SecurityBroker" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory" %>
Run Code Online (Sandbox Code Playgroud) 我想知道在我的程序中我是否只有1个线程,我可以编写它以便Quad core或i7可以实际使用不同的内核吗?通常,当我在四核计算机上编写程序时,CPU使用率将仅达到约25%,并且工作似乎在4个核心之间进行划分,如任务管理器所示.(我编写的程序通常是Ruby,Python或PHP,所以它们可能没有那么多优化).
更新:如果我用C或C++编写它,和
for (i = 0; i < 100000000; i++) {
a = i * 2;
b = i + 1;
if (a == ... || b == ...) { ... }
}
Run Code Online (Sandbox Code Playgroud)
然后使用编译器的最高级别的优化.编译器是否可以在一个内核上进行乘法,并且添加发生在不同的内核上,因此可以使两个内核同时工作?使用2个核心并不是一个相当容易的优化?
如何比较自定义类的两个对象?我的想法是在类中添加一个额外的方法,我可以在其中将当前对象与同类的另一个对象进行比较.
所以我可以编写自己的代码,比较每个类的字段.
我就是这样做的.或者有一些预定义的方法来做到这一点?像NSString类的"isEqualTo"?
我现在为硬件升级节省了一些钱.我想知道的是,哪种方法可以最简单的方法来衡量哪一部分硬件是编译的瓶颈而应该进行升级?
我可以使用任何聪明的技巧吗?我已经调查了perfmon,但它有太多的计数器,如果没有确切的知识应该看什么就没有用.
条件:家庭开发,Windows XP Pro,Visual Studio 2008
谢谢!