小编Rob*_*Rob的帖子

为什么boost :: thread可以被删除两次?

我注意到一些奇怪的事 我希望运行以下代码生成段错误,但事实并非如此.

void DeadlineTimeOut(const boost::system::error_code& pErrorCode, boost::thread* pThread) 
{
    std::cout << "Error code: #" << pErrorCode.value() 
      << " Message: " << pErrorCode.message() << std::endl;
    std::cout << "Thread Address = " 
      << pThread << std::endl; // "sth. like 0x33aabc0"

    pThread->interrupt();
    pThread->join();

    delete pThread;
    delete pThread;

    std::cout << "Stopped execution thread #" 
      << pThread->get_id() << std::endl; // "{Not-any-thread}"
}
Run Code Online (Sandbox Code Playgroud)

那么,为什么双重删除可能?并且还要召集会员?我此刻有点困惑.

c++ multithreading boost memory-management

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

HTML5 Canvas闪烁文字?

有没有人知道如何在HTML5画布上顺序执行以下操作(使用javascript).

  1. 文字出现(我已经知道如何做到这一点:P)
  2. 文本每隔一秒闪烁几次
  3. 文字在5秒后(或每当)消失

我觉得这很难做的原因是因为无法在脚本中创建暂停.任何帮助将不胜感激!

javascript html5 canvas

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

UnsatisfiedLinkError调用由SWIG生成的JNI吗?

我正在尝试创建一个可从Java调用的C动态库。我已经在Cygwin下编译了一个DLL ,使用SWIG生成带有以下makefile的JNI:

CC= gcc -mno-cygwin
SWIG= /cygdrive/c/Documents\ and\ Settings/student/Desktop/swigwin-2.0.4/swig.exe -java 
INCLUDE1= -I/cygdrive/c/Program\ Files/Java/jdk1.6.0_25/include 
INCLUDE2= -I/cygdrive/c/Program\ Files/Java/jdk1.6.0_25/include/win32

utilities:
    ${SWIG} utilities.i
    ${CC} -c utilities.c utilities_wrap.c ${INCLUDE1} ${INCLUDE2}
    ${CC} -shared utilities.o utilities_wrap.o -Wl,--add-stdcall-alias -o utilities.dll
Run Code Online (Sandbox Code Playgroud)

以下是SWIG接口文件的内容utilities.i

/* utilities.i */
%module utilities
%{
#include "driver.h"
%}

extern int get_3711a_fd(char * device);
/* Other prototypes omitted for brevity */
Run Code Online (Sandbox Code Playgroud)

我已经验证了这些方法已从DLL中正确导出,并且将Utility.dll放在了这两种方法中:

  1. C:\ Program Files \ Java \ jdk1.6.0_25 \ bin
  2. C:\ Program Files \ Java \ jdk1.6.0_25 \ …

c java dll java-native-interface swig

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

有这个数学计算的更好的解决方案?(JAVA)

我有一个Java程序,我必须做家庭作业,这是我必须使用的公式:公式的图片.对不起,我不是英语母语人士,我不知道这个公式的名称.

我写过这个解决方案:

/* Check: 
 * if: j<=3:
 * 
 * 1/1+sqrt2=0,414213562
 * 1/sqrt2+sqrt3=0,317837245
 * 1/sqrt3+sqrt4=0,267949192
 *      res= 0,9999999 =~1.0
 */
double sum = 0;
for (int j = 2; j <= 624; j++) 
{
    sum += 1 / ((Math.sqrt(j) + Math.sqrt(j + 1)));
}
double res = 0;
res = (double)1 / (1 + Math.sqrt(2)) + sum;

System.out.println("Result is: "  + res);
Run Code Online (Sandbox Code Playgroud)

我检查的程序j=2j=3,它给了正确的结果(1.0左右).所以我认为它运作良好.但是,当我尝试时j<=624,我的结果是:24.000000000000014

1.如何在我的程序中将结果设为24.0而不是24.000000000014?

2.这个数学公式有更好的解决方案/源代码吗?这个公式的英文名称是什么?

java math

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

Scala翻译找不到我的课?

我正在尝试在解释器中加载Scala文件:

trait MyOrdered {
  def <(that: MyInt):Boolean = compare(that) < 0
  def >(that: MyInt):Boolean = compare(that) > 0
  def <=(that: MyInt):Boolean = compare(that) < 0 || this == that
  def >=(that: MyInt):Boolean = compare(that) > 0 || this == that
  def compare(that: MyInt): Int
}

class MyInt(val value: Int) extends MyOrdered {
  def compare(that: MyInt) =
    if (this.value < that.value) -1 
    else if (this.value == that.value) 0
    else 1
}


object App extends Application{
  val a = new MyInt(2)
  val …
Run Code Online (Sandbox Code Playgroud)

polymorphism types scala

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

没有实例的最终常量类比常量接口更好?

在阅读有关常量接口反模式时,我发现没有实例的最终常量类比常量接口更好.
请解释我怎么样?

public interface ConstIfc {
  public static final int constValue = 10;
}

public final class ConstClass {
  private ConstClass{}
  public static final int constValue = 10;
}
Run Code Online (Sandbox Code Playgroud)

如果必须在没有命名Ifc/Class名称的UtilClass中使用constValue,我们可以实现/扩展它们.但实现支持多重继承.那么如何更好地延伸?
注意:我能够理解静态导入.

java interface class constants

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

添加声明后价值没有增加?

我有两个函数,我将随机数添加到总值.

问题是,每次调用函数并打印总数时,都不会添加.如果它生成2,则表示总数为2.之后如果我再次调用它并生成5,则表示总数为5,并且不添加(如果发生这种情况,则应为7).

这里的一切看起来都很好......

int human(int humanscore)
{
    int diceRoll= rand() % 7;
    cout << "player rolled: ";
    humanscore+= diceRoll;
    cout << diceRoll;
    cout << "human score is: " << humanscore;
}

int computer(int compscore)
{
    int diceRoll= rand() % 7;
    cout << "computer rolled: ";
    compscore+= diceRoll;
    cout << diceRoll;
    cout << "computer score is: " << compscore;
}
Run Code Online (Sandbox Code Playgroud)

c++ function addition

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

如何从存储库中获取新添加的实体?

我正在使用ObjectContext与其他存储库共享的存储库实现.存储库包含一个ObjectSet实体.我正在通过Add()方法添加新实体ObjectSet.在导入数据时,我想查询这些新添加的对象以防止重复数据.

ObjectContext实现工作模式的一个单元.在导入过程结束时,我想调用commit方法来调用context.SaveChange()持久化数据.

但是,在我打电话之前,我找不到一种简单的方法来查询新添加的实体SaveChanges().你们怎么处理这些问题?

entity-framework unit-of-work repository-pattern ef-code-first entity-framework-4.1

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

HTML5 画布轮盘

我有这个http://jsfiddle.net/e7fwt4wb/!轮盘在 html5 画布中旋转 - 正常运行,当我调用方法 spin 时,轮盘旋转并停止在我的数字数组的随机数中!如何调用传递参数的函数以停在我的数字数组的位置?

<script type="text/javascript">
var colors = ["#336600", "#660000", "#000000", "#660000",
    "#000000", "#660000", "#000000", "#660000",
    "#000000", "#660000", "#000000", "#660000", "#000000", "#660000", "#000000"];
var numbers = ["0", "1", "8", "2",
    "9", "3", "10", "4",
    "11", "5", "12", "6", "13", "7", "14"];

var startAngle = 0;
var arc = Math.PI / 6;
var spinTimeout = null;

var spinArcStart = 10;
var spinTime = 0;
var spinTimeTotal = 0;

var ctx;

function drawRouletteWheel() {
    var canvas …
Run Code Online (Sandbox Code Playgroud)

html javascript canvas

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

将管道作为exec中的参数传递

我正在尝试将管道传递给另一个使用execv创建的进程.到目前为止,这是我的代码,但它不起作用.我到处寻找信息,但我找不到任何具体的关于通过管道vie exec.任何帮助表示赞赏.谢谢

int fd[2];
pipe(fd);

char passwrite[1];
sprintf(passwrite, "%d", fd[0]);

char arg[1];
arg[1]=passwrite;

int x;
x=fork();
if (x==0) {
execv("NewProg",arg);
}
Run Code Online (Sandbox Code Playgroud)

c fork pipe exec

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