问题列表 - 第46544页

为什么Lua使用垃圾收集器而不是引用计数?

我自己也听过并经历过:Lua的垃圾收集器会因为脚本部分的增长而导致严重的FPS下降.

这是我发现与垃圾收集器有关的,例如,临时创建的每个Vector()userdata对象都存在,直到收集垃圾.

我知道Python使用引用计数,这就是为什么它不需要像Luas GC那样需要的任何巨大的性能执行步骤.

  • 为什么Lua不使用引用计数来摆脱垃圾?

lua garbage-collection

16
推荐指数
4
解决办法
7992
查看次数

使用WebBrowser显示对话框

我想显示一个打印机对话框但是当我运行以下代码时,它会在ShowPrinterDialog打开时立即打印.换句话说,它不会等待ShowPrinterDialog在打印前关闭.

WebBrowser browser = new WebBrowser();
browser.DocumentText = "<b>Stack Overflow FTW!</b>";
browser.DocumentCompleted += Browser_DocumentCompleted;

void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    ((WebBrowser)sender).ShowPrinterDialog();
    ((WebBrowser)sender).Print();
}
Run Code Online (Sandbox Code Playgroud)

有想法该怎么解决这个吗?

.net c# printdialog webbrowser-control winforms

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

Entityframework使用join方法和lambdas加入

似乎有不同的方法使用linq进行连接.一个更直接,只涉及加入这样的表:

var found = from c in s.categories
            join cm in s.categorymaps on c.CategoryId equals cm.ChildCategoryId
            select c;
Run Code Online (Sandbox Code Playgroud)

还有另一种使用lambdas的方法,我有一段时间试图弄清楚如何使用这种语法加入.任何人都可以提供详细解释和大量示例的链接吗?或者只是简单地演示使用示例如何使用这种相当混乱的语法?

var x = _session.All<category>().Join<categorymap,category, ....
Run Code Online (Sandbox Code Playgroud)

lambda entity-framework join

53
推荐指数
2
解决办法
12万
查看次数

检查文件系统是否支持硬链接

我正在编写一个备份脚本,它使用硬链接来不为未修改的文件消耗空间。

我想在脚本开始时检查给定的文件系统(根据特定目录确定)是否支持硬链接- 否则,在需要创建第一个硬链接之前,它可能会中途(复制多个文件) ,导致脚本出现异常退出(我可以通过恢复更改或默默地将硬链接更改为完整副本来恢复,但我也不是真的想要 - 如果它会遇到这个问题,我宁愿不开始) .

那么,如果唯一可用的输入是包含目录位置的字符串(例如"F:\\Backups"或类似的),我该如何检查文件系统是否支持硬链接?

如果做不到这一点,是否有一种很好的方法来检查特定目录所在的文件系统类型
我想可以把它拉出来,然后从那里开始计算它是否受支持?

python filesystems

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

获取GDB以在返回其提示时打印堆栈跟踪

我怎样才能让GDB 每次在其提示符处向我返回控件时打印堆栈跟踪(例如自动运行bt命令)?

debugging gdb

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

使用MediaRecorder在我的droidx上录制的音质很差,为什么?

我的项目要求我能够在Android设备上录制音频.我使用MediaRecorder()实现了解决方案,但录制的音频质量很差.我究竟做错了什么?我必须认为这不能记录音频的唯一方法:)也许我做错了什么,我在下面包括我的代码.请指出正确的方向.

谢谢!

MediaRecorder recorder = new MediaRecorder();
File outputFile = new File(Environment.getExternalStorageDirectory(), "audio.3gp");
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(outputFile.getAbsolutePath());
recorder.prepare();
recorder.start();
// stop
recorder.stop();
recorder.reset(); 
recorder.release();
Run Code Online (Sandbox Code Playgroud)

audio android recording

6
推荐指数
4
解决办法
7332
查看次数

if exists(":command")在启动时失败,使用Pathogen

我正在exists()用来检查Vim中是否安装了插件(我映射;:):

if exists(":NERDTree")
    map <F4> ;NERDTreeToggle<CR>
endif
Run Code Online (Sandbox Code Playgroud)

除非我手动获取.vimrc文件,否则映射不起作用.我正在使用Pathogen在启动时加载我的插件,我想这与它有关?

我完整的.vimrc文件:https://github.com/ElbertF/dotfiles/blob/master/.vimrc

vim

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

java转义括号

我有这个小类来对字符串进行多次替换:

import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
public class MultipleReplace {
    public static void main(String[] args) {
        Map<String,String> tokens = new HashMap<String,String>();
        tokens.put(":asd:", "<img src=asd.gif>");
        tokens.put(":)", "<img src=sorriso.gif>");
        String template = ":asd: bravo! :)";
        String patternString = "(" + StringUtils.join(tokens.keySet(), "|") + ")";
        Pattern pattern = Pattern.compile(patternString);
        Matcher matcher = pattern.matcher(template);
        StringBuffer sb = new StringBuffer();
        while(matcher.find()) {
            matcher.appendReplacement(sb, tokens.get(matcher.group(1)));
        }
        matcher.appendTail(sb);

        System.out.println(sb.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是在第二次替换,我有一个括号导致:

线程"main"中的异常java.util.regex.PatternSyntaxException:索引8(:)|:asd :)附近的不匹配的结束')'

我怎么能逃脱括号?或者,你能建议一个替代方案来做多次替换吗?

非常感谢,对不起我的英语:)

编辑:

使用反斜杠转义')'也不起作用,它不会编译:

"无效的转义序列(有效转义序列为\ b\t \n\f\r \"\'\)" …

java regex escaping parentheses

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

在定位iPhoneSimulator时链接Xcode中的错误

更新:

我刚刚意识到您可以通过设置LD_TRACE_ARCHIVES和LD_TRACE_DYLIBS环境变量然后直接在命令行上运行链接器命令来获取更多信息.这是我正在执行的,然后是它的输出(虽然我用<short-text>字符串替换了一些非常长的路径和名称):

/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/g++-4.2
-arch i386
-isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk
-L<path_to_project>/build/Debug-iphonesimulator
-L<path_to_static_libs>
-F<path_to_project>/build/Debug-iphonesimulator
-filelist <path_to_project>/build/<project_name>.build/Debug-iphonesimulator/<project_name>.build/Objects-normal/i386/<project_name>.LinkFileList
-mmacosx-version-min=10.6
--verbose
-lproject_lib
-Xlinker -objc_abi_version
-Xlinker 2
-framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore
-o <path_to_project>/build/Debug-iphonesimulator/<project_name>.app/<project_name>

Using built-in specs.
Target: i686-apple-darwin10
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5664)
/Developer/usr/bin/../libexec/gcc/i686-apple-darwin10/4.2.1/collect2
-dynamic -arch i386 -macosx_version_min 10.6
-syslibroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk
-weak_reference_mismatches non-weak
-o <path_to_project>/build/Debug-iphonesimulator/<project_name>.app/<project_name>
-lcrt1.10.6.o
-L<path_to_project>/build/Debug-iphonesimulator
-L<path_to_static_libs>
-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib
-L/Developer/usr/bin/../lib/gcc/i686-apple-darwin10/4.2.1
-L/Developer/usr/bin/../lib/gcc
-L/usr/lib/gcc/i686-apple-darwin10/4.2.1
-L/usr/lib/gcc/i686-apple-darwin10/4.2.1
-L/Developer/usr/bin/../lib/gcc/i686-apple-darwin10/4.2.1/../../../i686-apple-darwin10/4.2.1
-L/Developer/usr/bin/../lib/gcc/i686-apple-darwin10/4.2.1/../../..
-L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../..
-filelist <path_to_project>/build/<project_name>.build/Debug-iphonesimulator/<project_name>.build/Objects-normal/i386/<project_name>.LinkFileList
-lproject_lib
-objc_abi_version 2
-framework Foundation -framework UIKit -framework OpenGLES …
Run Code Online (Sandbox Code Playgroud)

xcode ios ios-simulator

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

使用DataContractSerializer序列化,但不能反序列化

我有以下两个功能:

public static string Serialize(object obj)
{
    DataContractSerializer serializer = new DataContractSerializer(obj.GetType());
    MemoryStream memoryStream = new MemoryStream();
    serializer.WriteObject(memoryStream, obj);
    return Encoding.UTF8.GetString(memoryStream.GetBuffer());
}

public static object Deserialize(string xml, Type toType)
{
    MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(xml));
   // memoryStream.Position = 0L;
    XmlDictionaryReader reader = XmlDictionaryReader.CreateTextReader(memoryStream, Encoding.UTF8, new XmlDictionaryReaderQuotas(), null);
    DataContractSerializer dataContractSerializer = new DataContractSerializer(toType);
    return dataContractSerializer.ReadObject(reader);
}
Run Code Online (Sandbox Code Playgroud)

第一个似乎将对象序列化为xml字符串就好了.XML显示有效,没有损坏的标记,开头或结尾没有空格等.现在第二个函数不希望将我的xml字符串反序列化回对象.在最后一行我得到:

反序列化[MY OBJECT TYPE HERE]类型的对象时出错.根级别的数据无效.第1行,第1位.

我究竟做错了什么?我尝试重写Deserialize函数几次,它似乎总是出现同样的错误.谢谢!

哦,这就是我调用2个函数的方式:

SomeObject so = new SomeObject();
string temp = SerializationManager.Serialize(so);
so = (SomeObject)SerializationManager.Deserialize(temp, typeof(SomeObject));
Run Code Online (Sandbox Code Playgroud)

c# xml-serialization datacontractserializer c#-4.0

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