我有一个函数,我想允许运行一段给定的时间,然后,如果它没有自行退出,则中止.做这个的最好方式是什么?
我想到的最好的方法是在另一个线程中运行它,等待超时让它死掉然后用Thread.Abort()它来杀死它(如果函数有错误的catch块,这可能不起作用).另一种选择(一种我不知道如何工作的选择)将是某种先发制人的计时器.
有没有更好的办法?某种简单的沙箱系统?
编辑:我将要运行的功能没有任何系统来检查它是否应该取消,我不能(因为一定不能)添加它.此外,这是一个各种各样的测试工具,所以我将杀死该功能的条件是它已经运行了.在那种情况下,我不能指望它正确地做任何事情.
我写的一些代码有一个非常讨厌的问题.我发现其他人在stackoverflow上有同样的问题,我尝试了解决方案,但没有一个对我有用.
我键入了几个我正在使用的常见STL类型,除了我尝试键入地图时,没有其他任何问题.我在测试程序中包含我的标题时出现"some_file.h:83:错误:'''令牌之前的预期初始化程序"错误.
这是标题的重要部分(some_file.h):
#ifndef SOME_FILE_H
#define SOME_FILE_H
// some syntax-correct enums+class prototypes
typedef std::string str;
typedef std::vector<Column> col_vec;
typedef col_vec::iterator col_vec_i;
typedef std::vector<Row> row_vec;
typedef row_vec::iterator row_vec_i;
typedef std::vector<str> str_vec;
typedef str_vec::iterator str_vec_i;
typedef std::vector<Object> obj_vec;
typedef obj_vec::iterator obj_vec_i;
typedef std::map<Column, Object> col_obj_map; // error occurs on this line
typedef std::pair<Column, Object> col_obj_pair;
Run Code Online (Sandbox Code Playgroud)
some_file.cpp中的包含是:
#include <utility>
#include <map>
#include <vector>
#include <iostream>
#include <string>
#include <stdio.h>
#include <cc++/file.h>
#include "some_file.h"
Run Code Online (Sandbox Code Playgroud)
测试文件只包含该顺序的字符串,矢量和我的文件.它有一个主要的方法,只是做一个问候世界的事情.
有趣的是,我很快就把一个模板化的课程拼凑在一起,看看问题出在哪里(用" std::map<Column..."替换" hello<Column..."),它没有问题.
如果您使用的是没有' <'运算符的类,我已经创建了地图所需的运算符重载.
我无法弄清楚这里出了什么问题 - 任何想法?
我正在运行Ubuntu 8.04 LTS,并从这些说明安装了libxml2和libxslt:
http://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux.php
http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php
但是,我安装了最新版本:
libxslt-1.1.24
libxml2-2.7.3
安装平安无事
--------------------我设置LD_LIBRARY_PATH---------------------------- ------
echo $LD_LIBRARY_PATH
/usr/local/libxslt/lib:
-------------似乎函数存在 - 至少基于字符串的输出------------
/ usr/local/libxslt/lib $字符串*| grep ParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
-----------------------但编译仍然失败---------------------- ------------------
sudo gem install webrat
构建本机扩展.这可能需要一段时间...
错误:安装webrat时
出错:错误:无法构建gem原生扩展.
/ usr/local/bin/ruby extconf.rb
在/ opt/local/include /,/ opt/local/include/libxml2,/ opt/local/include,/ opt/local/include中安装webrat 检查iconv.h, /选择/本地/包括/ libxml2的,在/ usr /本地/包括,在/ usr /本地/包括/ libxml2的,在/ usr /本地/包括,在/ usr /本地/包括/ libxml2的,/ usr/include目录,/ usr/include目录/ libxml2 ...是
检查/ opt/local/include /,/ opt/local/include/libxml2,/ opt/local/include,/ opt/local/include,/ opt/local /中的libxml/parser.h包括/ libxml2的,在/ usr /本地/包括,在/ …
我使用Linq数据集来查询数据表.如果我想在数据表上的"Column1"上执行一个组,我使用以下查询
var groupQuery = from table in MyTable.AsEnumerable()
group table by table["Column1"] into groupedTable
select new
{
x = groupedTable.Key,
y = groupedTable.Count()
}
Run Code Online (Sandbox Code Playgroud)
现在我想在两列"Coulmn1"和"Column2"上执行group by.任何人都可以告诉我语法或者在数据表中提供一个解释多个组的链接吗?
谢谢
Git-svn允许将重复的文件名(只是具有不同的大小写)添加到我们的subversion存储库中.
在Windows上,这意味着subversion无法检出文件,抱怨重复.
另一位开发人员从存储库中删除了错误的套件版本.现在,当我尝试执行git-svn rebase时,我得到一个"无法分离HEAD"的消息,并且有关该文件名未被跟踪且需要被覆盖的投诉.删除该文件会使git-svn抱怨该文件需要更新.
将存储库复制到具有区分大小写的文件系统的计算机的唯一解决方案是否执行rebase然后将其移回?
我知道git-svn还没有为Windows上的真实世界工作做好准备,但我想从它创建的这个混乱中恢复过来.
是否有任何研究或一组基准测试显示由于在GCC中指定-fno-strict-aliasing(或其他编译器中的等效项)而导致的性能下降?
是否可以将多个命令绑定到按钮.
我有一个用户控件,我在我的主应用程序(父应用程序)中调用.
我想在两个控件(用户控件以及主窗口)上处理单击命令.但是我只能得到一个.
有什么方法可以让我得到这个.
任何帮助都非常感谢.
代码片段:
public class MainWindowFooterCommands
{
public static readonly RoutedUICommand FooterClickLocalCommand = new RoutedUICommand("Local Button Command", "FooterClickLocalCommand", typeof(MainWindowFooterCommands));
}
private void MainWindowFooterBindCommands()
{
CommandBinding cmdBindingBXClick = new CommandBinding(MainWindowFooterCommands.FooterClickLocalCommand);
cmdBindingBXClick.Executed += ClickCommandHandler;
CommandBindings.Add(cmdBindingBXClick);
}
void ClickCommandHandler(object sender, ExecutedRoutedEventArgs e)
{
//Do Something
}
//Parent Control holding an instance of the footer control.
class MainWindow {
public MainWindow()
{
CommandBinding cmdBindingBXClick1 = new CommandBinding(MainWindowFooterCommands.BXClickMainWindowCommand);
cmdBindingBXClick1.Executed += LoadParent;
CommandBindings.Add(cmdBindingBXClick1);
}
public void LoadParent(object sender, ExecutedRoutedEventArgs e)
{
LoadParentWindow();
} …Run Code Online (Sandbox Code Playgroud) 这个问题特定于使用PHPUnit.
PHPUnit自动将php错误转换为异常.有没有办法测试碰巧触发php错误的方法的返回值(内置错误或用户生成的错误通过trigger_error)?
要测试的代码示例:
function load_file ($file)
{
if (! file_exists($file)) {
trigger_error("file {$file} does not exist", E_USER_WARNING);
return false;
}
return file_get_contents($file);
}
Run Code Online (Sandbox Code Playgroud)
这是我想写的测试类型:
public function testLoadFile ()
{
$this->assertFalse(load_file('/some/non-existent/file'));
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是触发的错误导致我的单元测试失败(应该如此).但是如果我试图捕获它,或者设置一个预期的异常,那么在触发错误之后的任何代码都不会执行,所以我无法测试该方法的返回值.
此示例不起作用:
public function testLoadFile ()
{
$this->setExpectedException('Exception');
$result = load_file('/some/non-existent/file');
// code after this point never gets executed
$this->assertFalse($result);
}
Run Code Online (Sandbox Code Playgroud)
有什么想法我能做到这一点吗?
在C中,自动变量(如果未初始化)保存垃圾值.但是,请考虑以下程序:
int main(){
signed char term;
(char)term--;
printf("%d\n",term);
}
Run Code Online (Sandbox Code Playgroud)
它打印的值为'7'.如果我不这样做(char)term--,它会打印一个值'8'.所以,它肯定没有垃圾价值.这不矛盾吗?
我正在服务器上构建一个字符串,该字符串将被放入客户端的javascript变量中.
什么是最好的编码,以避免任何问题
现在在服务器上我正在做这样的事情:
html = html.Replace("'", "'");
Run Code Online (Sandbox Code Playgroud)
但我认为有一种更优雅的方式来做这样的事情.