我最近将我的计算机更新为更强大的计算机,配备了四核超线程处理器(i7),因此可以提供大量真正的并发性.现在我在退出()我正在开发的应用程序(使用Swing GUI)时偶尔会出现以下错误System.exit(0):
Exception while removing reference: java.lang.InterruptedException
java.lang.InterruptedException
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
Run Code Online (Sandbox Code Playgroud)
好吧,鉴于它开始发生在具有更多并发能力的硬件上,并且它与线程有关,并且它偶尔发生,它显然是某种时间性的东西.但问题是堆栈跟踪太短了.我只有上面的列表.它根本不包括我自己的代码,因此有点难以猜测bug的位置.
以前有没有经历过这样的事情?任何想法如何开始解决它?
编辑:因为退出Swing应用程序System.exit(0)可能是"不干净",但我不想设置主框架,EXIT_ON_CLOSE因为我想确保应用程序退出时没有任何关键的事情,我添加了一个机制,以便它执行dispose()调用之前的主框架方法System.exit(0).所以它现在应该很干净,但偶尔也会发生异常.它发生在System.exit(0)被召唤之后; dispose()工作没有问题.也就是说,它必须来自一个关闭钩子:
mainFrame.dispose(); // No problem! After this returns, all visible GUI is gone.
// In fact, if there were no other threads around, the VM could terminate here.
System.exit(0); // Throws an InterruptedException from sun.java2d.Disposer.run
Run Code Online (Sandbox Code Playgroud)
我甚至尝试Window通过循环遍历Window.getWindows()数组显式处理所有s (它包含无主Dialog …
java concurrency multithreading java-2d interrupted-exception
在我的构建工作流程中,我更改了AssemblyInfo.cs中的某些类库的程序集版本信息.如何在构建过程结束时签入我的更改?从我看来,没有这样的活动.
我正在尝试使用Wifimanager来计算扫描期间找到的接入点的信号电平.
我使用以下方法:
WifiManager.calculateSignalLevel(int,int)
但无论RSSI级别如何,它似乎总是返回相同的int.
这是我的代码:
public int calculateQoS(int aRSSI){
signalLevel = WifiManager.calculateSignalLevel(RSSI, 5);
return signalLevel;
}
Run Code Online (Sandbox Code Playgroud)
public void testCalculateQoS(){
Log.d("signal", "signal = : "
+ connMonitor.calculateQoS(-44)
+ " " + connMonitor.calculateQoS(-80)
+ " " + connMonitor.calculateQoS(-120)
+ " " + connMonitor.calculateQoS(-20));
}
Run Code Online (Sandbox Code Playgroud)
对于calculateQoS(int)的所有测试用例,日志输出1.
我错过了一些简单的东西吗?为什么SignalLevel总是1?
给定一个小整数的N维向量是否有任何简单的方法来映射它与一个大的整数一一对应?
比如说,我们有N = 3个向量空间.我们可以使用整数(int48)y表示向量X = [(int16)x1,(int16)x2,(int16)x3]吗?显而易见的答案是"是的,我们可以".但问题是:"执行此操作的最快方法是什么?反向操作?"
这个新的1维空间是否具有一些非常特殊的有用属性?
据我所知,垃圾收集器在应用程序运行时自行调整,例如,当收集管理堆上的对象时(根据MSDN)随时间调整的阈值.
如果应用程序崩溃,运行时是否记住它以前的垃圾收集"设置"或任何其他设置?
嘿,我有一个管理员表单,他们插入一个用户名("域\名称"),代码获取并设置一些信息.
这是一个庞大的项目,一些列表包含用户名作为字符串("域\名称"),但有些列表只依赖于"创建者"列,该列是自动创建的.
我想知道使用用户名字符串查询这些列表的最快方法是什么.我尝试使用与我用于第一种列表的查询相同的查询,但它显然不起作用 -
<Where><Eq><FieldRef Name='UserName'/><Value Type='Text'>domain\\username</Value></Eq></Where>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我无意中svn删除了一个文件svn del --targets del.txt.现在,我想恢复该文件svn cat myPreciousFile.txt@4130 > myPreciousFile.txt,但svn给我一个警告,myPreciousFile.txt 不受版本控制.A svn cat -r 4130 myPreciousFile.txt > myPreciousFile.txt也没用.
有人可以告诉我如何再次恢复此文件?
编辑
好的,我已尝试过svn merge,但它仍然无效.这就是我所做的(改变文件名以保护有罪......):
f:\path\to\dev\dir> svn diff -r 4250:4251 --summarize
D file_one.tyb
D file_two.tyb
D myPreciousFile.txt
Run Code Online (Sandbox Code Playgroud)
我将此输出解释为"在版本4251中删除了myPreciousFile".所以,我尝试了svn merge:
f:\path\to\dev\dir> svn merge-c -4251 myPreciousFile.txt
Run Code Online (Sandbox Code Playgroud)
并且svn仍然警告我myPreciousFile.txt不受版本控制.(与btw相同的错误消息svn merge-c -4250 myPreciousFile.txt.
我正在尝试将List转换为IEnumerable,因此我可以验证不同的列表不为null或为空:
假设myList是List <T>.然后在我想要的来电代码中:
Validator.VerifyNotNullOrEmpty(myList as IEnumerable<object>,
@"myList",
@"ClassName.MethodName");
Run Code Online (Sandbox Code Playgroud)
有价值的代码是:
public static void VerifyNotNullOrEmpty(IEnumerable<object> theIEnumerable,
string theIEnumerableName,
string theVerifyingPosition)
{
string errMsg = theVerifyingPosition + " " + theIEnumerableName;
if (theIEnumerable == null)
{
errMsg += @" is null";
Debug.Assert(false);
throw new ApplicationException(errMsg);
}
else if (theIEnumerable.Count() == 0)
{
errMsg += @" is empty";
Debug.Assert(false);
throw new ApplicationException(errMsg);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.它编译,但是无数是空的!为什么?
abstract class db_table {
static function get_all_rows() {
...
while(...) {
$rows[] = new self();
...
}
return $rows;
}
}
class user extends db_table {
}
$rows = user::get_all_rows();
Run Code Online (Sandbox Code Playgroud)
我想从抽象父类中定义的静态方法创建类的实例,但PHP告诉我"致命错误:无法实例化抽象类......"我应该如何正确实现它?
编辑:当然我想在这种情况下创建类"user"的实例,而不是抽象类的实例.所以我要告诉它创建一个被调用的子类的实例.
有一种优雅的方法可以让程序检测连接到网络的新计算机吗?
我希望我的程序能够"自动感知"在网络上连接的新计算机(它们位于同一网络上).就像连接到计算机的USB设备一样.
我现在正在做的是不时保存网络中所有计算机的列表.另一种方法是在子网上PING所有可用的IP.
还有其他优雅的方法吗?
谢谢!
.net ×1
abstraction ×1
algorithm ×1
android ×1
c ×1
c# ×1
caml ×1
casting ×1
checkin ×1
concurrency ×1
generic-list ×1
ienumerable ×1
java ×1
java-2d ×1
math ×1
networking ×1
php ×1
rssi ×1
sharepoint ×1
svn ×1
tfsbuild ×1
wifimanager ×1