我创建了一个自定义自动完成控件,当用户按下一个键时,它会在另一个线程上查询数据库服务器(使用Remoting).当用户输入非常快时,程序必须取消先前执行的请求/线程.
我以前首先将它实现为AsyncCallback,但我发现它很麻烦,要遵循的房子规则太多(例如AsyncResult,AsyncState,EndInvoke)加上你必须检测BeginInvoke'd对象的线程,这样你就可以终止先前执行的线程了.此外,如果我继续AsyncCallback,那些AsyncCallbacks上没有可以正确终止先前执行线程的方法.
EndInvoke无法终止线程,它仍然会完成待终止线程的操作.我仍然会在线程上使用Abort().
所以我决定用纯线程方法实现它,没有AsyncCallback.这个thread.abort()是否正常且安全吗?
public delegate DataSet LookupValuesDelegate(LookupTextEventArgs e);
internal delegate void PassDataSet(DataSet ds);
public class AutoCompleteBox : UserControl
{
Thread _yarn = null;
[System.ComponentModel.Category("Data")]
public LookupValuesDelegate LookupValuesDelegate { set; get; }
void DataSetCallback(DataSet ds)
{
if (this.InvokeRequired)
this.Invoke(new PassDataSet(DataSetCallback), ds);
else
{
// implements the appending of text on textbox here
}
}
private void txt_TextChanged(object sender, EventArgs e)
{
if (_yarn != null) _yarn.Abort();
_yarn = new Thread(
new Mate
{
LookupValuesDelegate = this.LookupValuesDelegate,
LookupTextEventArgs =
new LookupTextEventArgs …Run Code Online (Sandbox Code Playgroud) 我正在构建一个简单的会计应用程序,用于个人理财.
用户可能会跟踪购买,即将到来的账单,经常性存款等.这将简单易懂.
两个问题:
1)我应该记住哪些建议?显然,我会在适当的地方使用事务,但是正确的数据类型和其他注意事项会很好.
2)您是否知道我可以用来定期从银行获得用户余额的API?即,无论是在Chase,BofA还是其他方面,都可以简化查询帐户的API?
非常感谢,
迈克尔
为了保持一致性,我发现自己需要为一串数据生成校验和.广义的想法是客户端可以根据收到的有效负载重新生成校验和,从而检测传输过程中发生的任何损坏.我隐约意识到这种事情背后有各种各样的数学原理,如果你试图自己滚动,那么微妙的错误就很容易使整个算法失效.
所以我正在寻找有关散列/校验和算法的建议,其标准如下:
我主要对轻量级的东西感兴趣,而不是让碰撞的绝对最小潜力成为可能.我是否天真地想象一个八字符哈希适合这个?我还应该澄清,如果在验证阶段没有发现腐败,那么这不是世界末日(而且我确实认识到这不会100%可靠),尽管我的其余代码对每个代码的效率都显着降低滑倒的腐败入境.
编辑 - 感谢所有贡献.我选择了Adler32选项,并且它在Java中原生支持,在Javascript中非常容易实现,在两端快速计算并且具有8字节输出,这完全符合我的要求.
(请注意,我意识到网络传输不太可能对任何损坏错误负责,并且不会在此问题上折叠我的手臂;但是添加校验和验证会消除一个故障点,这意味着我们可以专注于其他方面如果再次发生这种情况.)
我想知道是否可以获得运行给定类的实例的句柄.触发此问题的特定问题是由于许多正在运行的线程而无法正常退出的应用程序.
是的,我知道你可以守护theads,然后他们不会阻止应用程序退出.但它确实让我想知道这是否可行.我最接近的是classloaders(protected!)findLoadedClass,尽管你必须通过自己的类加载器来执行此操作.
在相关的说明中,这是分析工具如何管理跟踪对象句柄?通过运行自己的自定义类加载器?还是有一些我看不到的好看的狡猾方式?
我不是开发人员,因此不了解科技界的最新发展.我正在考虑创建一个供我自己使用的桌面应用程序,并尝试尽可能地学习最好的技术.我打算为windows开发它,我有C++和visual studio的实践经验.期待专家的建议.
我正在考虑在Rails中实现某种形式的匿名用户系统.我需要让人们做事(创建记录,查看他们创建的内容等),而无需实际创建帐户.一旦他们创建了一个帐户,一切都会持续存在,而不会因清除cookie或其他内容而丢失它.
现在,我认为这很简单.在User模型中有一个is_anonymous字段,并使用类似的东西来访问当前登录的用户:
def find_user
session[:user_id] ||= create_new_anonymous_user.id
end
Run Code Online (Sandbox Code Playgroud)
假设会话持续了一段合理的时间,并且会话cookie没有过期,那么应该保持一切顺利运行.
然而,有一部分我确信我错过了与安全相关的东西.以前有人做过这样的事吗?我错过了一些非常明显的东西吗?
谢谢!
当我开始编写我的第一个应用程序时,我使用了NSNumber来获取金钱价值而不必考虑两次 然后我想也许c类型足以处理我的价值观.然而,我被推荐在iPhone SDK论坛中使用NSDecimalNumber,因为它具有出色的舍入功能.
不是气质的数学家,我认为尾数/指数范式可能是过度的; 仍然,googlin',我意识到大多数关于可可货币/货币的谈判都被提到了NSDecimalNumber.
请注意,我正在处理的应用程序将进行国际化,因此以美分计算金额的选项并不可行,因为货币结构在很大程度上取决于所使用的区域设置.
我90%肯定我需要使用NSDecimalNumber,但因为我在网上找不到明确的答案(类似于:"如果你处理钱,请使用NSDecimalNumber!")我想我会问这里.也许答案对大多数人来说是显而易见的,但我想在开始对我的应用程序进行大规模重新分解之前确定.
说服我 :)
基本上这个代码返回正确的信息,但我需要将数量一起添加以带回一条记录.有没有办法做到这一点?
select category.category_name, (equipment.total_stock-equipment.stock_out) AS Current_Stock, equipment.stock_out
from
EQUIPMENT,
CATEGORY
WHERE EQUIPMENT.CATEGORY_ID = CATEGORY.CATEGORY_ID
and category.category_name = 'Power Tools'
Run Code Online (Sandbox Code Playgroud) 我有一个用C#编写的Windows服务,它充当后端数据库的一堆网络设备的代理.为了测试并添加模拟层来测试后端,我希望有一个GUI供测试操作员运行模拟.还可以将条带化版本作为演示发送出去.GUI和服务不必同时运行.实现这种决斗操作的最佳方法是什么?
编辑:这是我的解决方案,从梳理的东西这个问题,我正在运行的服务和安装.NET Windows服务不InstallUtil.exe使用这个优秀的代码 由马克Gravell
它使用以下行来测试是运行gui还是作为服务运行.
if (arg_gui || Environment.UserInteractive || Debugger.IsAttached)
Run Code Online (Sandbox Code Playgroud)
这是代码.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.ComponentModel;
using System.ServiceProcess;
using System.Configuration.Install;
using System.Diagnostics;
namespace Form_Service
{
static class Program
{
///
/// The main entry point for the application.
///
[STAThread]
static int Main(string[] args)
{
bool arg_install = false;
bool arg_uninstall = false;
bool arg_gui = false;
bool rethrow = false;
try
{
foreach …Run Code Online (Sandbox Code Playgroud)