好的我有一个程序:
我的问题在第2和第3阶段之间,我需要等待文件完成打印,直到我可以删除它.
仅供参考:打印需要5-10分钟(在旧计算机上打印大文件)
所以我需要从Java能够检查是否:
defualt打印队列是空的
文件正在使用中(注意:File.canWrite()在打印时返回true)
我有一个应用程序,它应该与多个自定义设备通信,其中一些使用FTDI USB到串行转换器芯片,其中一些使用TCP.应用程序需要能够随时接受来自可能随时插入或拔出的设备的数据; 该应用程序充当设备和数据库之间的桥梁.
似乎当设备被拔出时,它通常会导致SerialPort类在BackgroundWorker线程中抛出异常并使应用程序崩溃.
我目前的补救措施,可能是荒谬的复杂,是让一个帮助应用程序发送/接收串行端口数据并将其中继到TCP套接字/从TCP套接字中继.当我的主应用程序看到插入了USB设备时,它会启动另一个应用程序,然后使用TCP套接字与之通信.如果插入了多个USB设备,则将为每个设备启动一个单独的帮助应用程序实例.当拔出USB端口时,帮助应用程序将崩溃,但"意外关闭"消息将被扼杀.
这种方法有效,但似乎大都不满意.必须有一个更好的方法.
从这个屏幕截图中,您可以看到行内的大量空间:

我已经使用这些函数来调整大小:
resizeRowsToContents();
resizeColumnsToContents();
Run Code Online (Sandbox Code Playgroud)
如何才能更好地适应细胞/行大小?
我最近继承了其他人编写的一些代码.
我发现代码中的任何地方都打开了一个目录以供阅读,它从未被关闭,因为原始开发人员有语法问题 - 他正在使用该close函数尝试关闭目录句柄而不是closedir函数.
代码是这样的:
opendir( DIR, $dir ) or die "Cannot open $dir: $!\n";
@files = readdir( DIR );
close( DIR );
Run Code Online (Sandbox Code Playgroud)
(这是Perl最佳实践(第208,278页)中关于检查close函数返回的另一个好点.如果close在这种情况下检查了返回,那么它将失败并显示"Bad file number".)
我已经改变了这一点closedir,但它让我开始疑惑:由于目录句柄从未关闭,对于保持目录句柄长时间打开有什么负面影响?
该程序较大(3,500行代码),运行一段时间(5-10分钟),并且该程序的多个实例同时运行.对于上面示例中的此目录,$dir所有实例的值都相同.如果此程序的10个实例同时运行,则它们都会对同一目录保持一个打开的目录句柄5分钟或更长时间.我确信Perl会在程序结束时自动关闭目录句柄,但最佳做法是尽快关闭它.
对我来说更明显的是,打开文件句柄会导致问题(特别是对于可以写入的文件句柄),但是如果不关闭目录句柄会发生什么坏事?
我问的原因是因为有一个奇怪的情况,这个程序试图创建一个文件(在上面的$ dir定义的目录中).文件名中嵌入了PID,因此文件可能已存在的可能性较小,但Perl无法打开文件进行写入,因为它说它已经存在.当我们查看目录时,该文件不存在.我想知道这个目录下的所有打开目录句柄是否都会导致这样的问题?
我不确定操作系统是否有所作为,但该程序在AIX上运行.
提前谢谢,周五快乐!
我想startForeground()在Service类中实现该方法以防止服务自杀.
任何人都可以给我发送实现此方法的代码吗?
public enum sEnum
{
zero = 0, one = 1
}
public int x;
public static void a(sEnum s)
{
x = 3;
if (s == sEnum.one) ...
}
Run Code Online (Sandbox Code Playgroud)
为什么可以在这里检查枚举的值,因为不使用static关键字?这在语言规范中记录在哪里?
我一直在使用maven一段时间,我经常在选择我想要使用的版本之前查看存储库.我不完全理解扩展意味着什么.
我知道,当我看到像-RC1和-RC2这样的扩展时,意味着释放候选者.当我看到没有扩展名的版本时,我认为这意味着发布的版本.但-M1或-M2的扩展名是什么意思?
例:
2.8 RC1
2.8
2.8-M1 ??
我做的很多是从AppSettings读取整数.最好的方法是什么?
而不是每次都这样做:
int page_size;
if (int.TryParse( ConfigurationManager.AppSettings["PAGE_SIZE"], out page_size){
}
Run Code Online (Sandbox Code Playgroud)
我在想我Helpers班上的一个方法是这样的:
int GetSettingInt(string key) {
int i;
return int.TryParse(ConfigurationManager.AppSettings[key], out i) ? i : -1;
}
Run Code Online (Sandbox Code Playgroud)
但这只是为了节省一些按键.
理想情况下,我喜欢将它们全部放入某种我可以使用intellisense的结构中,因此我不会遇到运行时错误,但我不知道我是如何处理这个...或者如果这是可能的话.
从Web.Config的AppSettings部分获取和读取整数的最佳实践方法是什么?
还有一件事...
设置它不是一个好主意readonly吗?
readonly int pageSize = Helpers.GetSettingInt("PAGE_SIZE") 似乎不起作用.
我刚刚得到了Robert Love的Linux Kernel Development一书.它有很多地方需要修改和构建内核.那我该怎么做呢.使用VM是否更好,或者我应该以某种方式获得适当的测试机器,因为我不想在我的系统和数据上搞砸.
想到这样做的天真的方式是:
SELECT name, lev FROM
(SELECT name, levenshtein(name, *parameter*) as lev FROM my_table)
WHERE
lev = (SELECT MIN(lev) FROM
(SELECT name, levenshtein(name, *parameter*) as lev FROM my_table ));
Run Code Online (Sandbox Code Playgroud)
然而,"(名称,levenshtein(名称,参数)作为lev FROM my_table)"子查询,这是非常昂贵的(巨大的表)重复两次,这看起来非常低效.
我不知何故你可以写:
SELECT name, lev FROM
(SELECT name, levenshtein(name, *parameter*) as lev FROM my_table) as my_temp_table
WHERE
lev = (SELECT MIN(lev) FROM my_temp_table);
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.
是否有一种干净的方法来优化查询的速度?我错过了一些明显的东西吗
我必须依靠临时表吗?(试图通过开销/复杂性来避免它,因为它们似乎不适合非常频繁/并发的查询)
来自SQL忍者的任何输入都将非常感谢;)
android ×1
appsettings ×1
c# ×1
c++ ×1
file ×1
java ×1
kernel ×1
linux ×1
locking ×1
maven ×1
maven-2 ×1
mysql ×1
perl ×1
printing ×1
qt ×1
qt4 ×1
qtableview ×1
serial-port ×1
subquery ×1
syntax-error ×1
usb ×1
vb.net ×1
versioning ×1
web-config ×1