我有一个带有一堆复选框的应用程序设置页面.我该如何选择复选框的默认选中状态?
我看到以下选项:
始终将默认状态设置为未选中,但这会导致复选框文本中的否定语句(如"不自动显示到期日程"),这有时很难理解.
始终将复选框文本设置为具有正面含义(例如"自动显示到期日程表"),但这会导致默认复选框状态不一致,包括已选中和未选中状态.
......还有其他选择吗?
有关此问题的任何指导方针,最佳做法和建议吗?
为什么必须始终从UI线程创建/更新UI元素?
在(几乎?)所有编程语言中,UI元素只能从UI线程安全地访问/修改.我知道这是一个标准的并发访问和同步问题,但它真的有必要吗?这种行为是由编程语言还是操作系统强加的?有没有这种情况不同的编程语言?
language-agnostic user-interface multithreading operating-system
我有以下完全可重现的场景,我无法理解:
有一个非常简单的应用程序,除了调用之外什么也没做CreateObject("Word.Application")
,就是为COM互操作创建一个MS Word实例.此应用程序位于Windows终端服务器上.测试用例是通过RDP连接,执行应用程序,应用程序将输出CreateObject
呼叫所需的时间.
现在的问题是,如果我从特定笔记本(HP Spectre)连接,执行时间会明显更长:它需要1,7s
(+/- 0.1s
).
如果我从任何其他机器(笔记本电脑或台式电脑)连接,则执行时间介于两者之间0,2-0,4s
.
执行时间不依赖于使用的RDP帐户,屏幕分辨率或本地打印机.我甚至在HP笔记本上安装了全新的Windows以排除任何其他副作用.HP笔记本电脑是通过WLAN还是USB网卡连接无关紧要.我4x
无法理解与8x
任何其他机器的执行时间差异.
哪个原因(组件/设置)可以解释执行时间的这个巨大差异?
一些额外的信息:我尝试使用API监视器调试该过程,并且可以看到> 90%的执行时间实际上是在调用RpcSend和RpcReceive之间花费的.不幸的是我无法理解这些信息.
我正在尝试找出在对象级别(而不是数据库级别)处理事务的最佳方法.简短示例:4个对象A,B,C和D. A启动事务并调用B和C中的方法.在此事务中C也调用D.被调用的方法不应该总是参与此事务,而是也可以自己打电话.是否有任何模式来管理对象级别的事务?
我没有找到任何东西,所以我提出了这个:使用TransactionContext,其中可以注册TransactionListeners.如果使用TransactionContext启动事务,则它会将正在运行的事务注入每个已注册的侦听器,而这些侦听器将使用正在运行的事务,否则将根据需要自行启动一个事务.通过这种方式,我可以自由决定是否需要参与我的交易的对象.
当拥有如上所述的对象调用链时会出现问题.在启动事务时,我只知道B和C必须参与事务,因此我将它们添加到TransactionContext中.但D怎么样?我真的不想将TransactionContext传递给B和C.
我会很感激我的方法的一些输入以及对已证实的模式的一些指示(甚至更好).
我最近开始了一个新项目,并且我试图将我的实例变量始终初始化为某个值,因此它们都不会在任何时候为null.以下小例子:
public class ItemManager {
ItemMaster itemMaster;
List<ItemComponentManager> components;
ItemManager() {
itemMaster = new ItemMaster();
components = new ArrayList<ItemComponentManager>();
}
...
}
Run Code Online (Sandbox Code Playgroud)
重点是在代码中的某个地方使用实例变量之前避免繁琐的null检查.到目前为止,它工作正常,你大多不需要null值,因为你也可以检查空字符串或空列表等.我没有使用这种方法的方法范围变量,因为它们的范围非常有限,所以不会影响代码的其他部分.
这一切都是实验性的,所以我想知道这种方法是否有效,或者是否有一些我还没有看到的陷阱.保持实例变量初始化通常是一个好主意吗?
我有多个不同项目的SVN存储库,我想搜索相同的搜索项/正则表达式,但不检查或更新每个项目并手动对每个项目进行搜索.
我想知道是否可以在多个SVN存储库中搜索某些搜索词(或正则表达式)中的文件内容.
与条目计数相关的哈希表是否有最佳大小?
因此对于entries = n
是否有最优(或推荐)s
的哈希表大小取决于n
?让我们说2n
(条目计数加倍)或其他一些值?
是否取决于内部结构(散列函数,桶大小等)?在提出要求时请提供一些证据.
我需要更新其中pdate
(日期字段)不在当前月份和年份的第1天和第20天之间的行.
我正在使用下面编写的代码,但它给出了一个错误,说"预期参数太少"1.我使用MS Access 2007作为数据库.
cn.Execute "update water set prel = (prel + (mmt * (tx / 100))) where pdate not between 1-" & Format$(Now, "MMM") & "-" & Format$(Now, "YYYY") & " and 20-" & Format$(Now, "MMM") & "-" & Format$(Now, "YYYY") & " "
Run Code Online (Sandbox Code Playgroud) 我很好奇为什么这种模式不起作用.
String same = "==== Instructions ====";
Pattern title4 = Pattern.compile(same);
Scanner scan = new Scanner(same);
System.out.println(scan.hasNext(same));
Run Code Online (Sandbox Code Playgroud)
收益:
false
Run Code Online (Sandbox Code Playgroud) 我正在寻找能够将字符串映射到数字的算法或函数,使得结果值对应于字符串的字典顺序.例:
"book" -> 50000
"car" -> 60000
"card" -> 65000
"a longer string" -> 15000
"another long string" -> 15500
"awesome" -> 16000
Run Code Online (Sandbox Code Playgroud)
作为函数,它应该类似于:f(x)= y,因此对于任何x1 <x2 => f(x1)<f(x2),其中x是任意字符串,y是数字.
如果x的输入集是有限的,那么我总是可以进行排序并分配正确的值,但我正在为x的无限输入集寻找通用的东西.