我Thread.sleep()在Java上遇到了一个奇怪的错误.出于某种原因,当我在某些机器上调用睡眠时,它永远不会返回.我无法弄清楚可能导致这种行为的原因.起初,我的错误可能是我的代码中的其他地方,所以我做了最简单的睡眠测试:
public class SleepTest {
public static void main (String [] args) {
System.out.println ("Before sleep...");
try {
Thread.sleep (100);
} catch (InterruptedException e) {
}
System.out.println ("After sleep...");
}
}
Run Code Online (Sandbox Code Playgroud)
在大多数机器上它都可以工作,但是在我远程登录的几台机器上,它会在打印语句之间无限期地暂停.我等了半个小时,行为没有变化.显示此错误的计算机是Linux计算机.以下是有关机器的一些信息:
$ uname -a
Linux zone29ea 2.6.32-220.17.1.el6.x86_64 #1 SMP Tue May 15 17:16:46 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux
$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
Run Code Online (Sandbox Code Playgroud)
什么可能导致这种行为?
UPDATE
修订版仍然永远不会结束:
public class SleepTest {
public …Run Code Online (Sandbox Code Playgroud) 我知道字典不是有序集合,不应该依赖于字典中插入和检索的顺序.
但是,这是我注意到的:
检索顺序与添加顺序相同.测试了大约16个键值对.
这是设计的吗?
问题是:为什么我们需要调用Dispose()一些对象?为什么垃圾收集器在超出范围时收集它?我试图理解为什么它被实现的原因.我的意思是,如果Dispose()在垃圾收集器收集范围对象时调用它会不会更容易.
我试图从硬塑料身份证的照片中读取信息.作为第一步,我一直在尝试处理图片,使文本更具计算机可读性.这些照片相当清晰,但它们很棘手,因为它们一面是浅色而另一面是黑暗的.似乎应该可以使用此信息来创建深度图,然后可以将其转换为黑白图像.主要是,我想知道是否有一些已知的算法(越简单越好)我可以实现.我目前正在使用Python和PIL进行剩余的处理,但我能适应的任何实现都会很棒.
我正在使用的图像的一个小例子:

我目前正在使用Entity Framework 4和2011年6月的CTP(用于枚举支持),并且我很难在持久化类中嵌入结构体.我有一个Patient带有InclusionCriteriastruct字段的类(以及其他):
public class Patient
{
public InclusionCriteria inclusionCriteria
{
get;
set;
}
...
}
Run Code Online (Sandbox Code Playgroud)
结构非常简单,具有原始字段:
public struct InclusionCriteria
{
public bool withStemi
{
get;
set;
}
...
}
Run Code Online (Sandbox Code Playgroud)
运行系统后,很明显结构的数据没有被保存.当我查看生成的表时,结构不存在(作为外键或其他).我想结构的字段位于Patient表中,所以我没有DbSet为标准做出.我可能会这样做,但我宁愿把它全部放在同一张桌子上.这在实体框架中是否可行?
我正在开发一项允许编辑文本的服务.为了帮助用户完成此过程,我想允许用户将文本字段设置为覆盖模式,如Word中所示,等等.如何将HTML文本框的行为更改为覆盖而不是插入文本作为用户类型?
例如,如果文本框有文本:
This is a trst.
Run Code Online (Sandbox Code Playgroud)
用户可以在r和t之间单击,键入单个e,然后文本将是
This is a test.
Run Code Online (Sandbox Code Playgroud)
用光标e和s.之间的光标.我目前正在使用jQuery,因此使用该方法或纯javascript的方法将是首选.不过,我会接受任何合理的解决方案.
假设我有这个:
abstract class Command {
static void run (String[]argv) {}
}
class Slice extends Command {
static void run (String[]argv) {/* slicing code */}
}
class Dice extends Command {
static void run (String[]argv) {/* dicing code */}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够迭代命令,所以我写道:
Class<Command>[] commands = {Slice.class,Dice.class}; /* compile error */
for (Class<Command> c : commands) {
if (some_string.equals(c.getName()) {
c.getDeclaredMethod("run",String[].class).invoke(argv);
return;
}
}
Run Code Online (Sandbox Code Playgroud)
然而,它似乎Slice.class并且Dice.class不能放入同一个容器中Class<Command>.
如果我更换Class<Command>与Class无处不在,代码编译一个警告:
[unchecked] unchecked call to getDeclaredMethod(java.lang.String,java.lang.Class<?>...) as a …Run Code Online (Sandbox Code Playgroud) c# ×2
java ×2
.net ×1
algorithm ×1
collections ×1
dispose ×1
generics ×1
html ×1
javascript ×1
jquery ×1
reflection ×1
sleep ×1