异步控制验证

异步控制验证

问题描述:

我需要在失去焦点时验证控件输入。通常我会使用验证事件。然而,这个过程涉及到检查输入的数据与280,000多个邮政编码的本地数据库。我希望这个验证是异步发生的,因为在用户输入剩余表单数据之前,用户不需要等待它。异步控制验证

我的第一个想法是将验证逻辑封装在自己的方法中,绑定一个委托并在控件验证事件中使用BeginInvoke()和EndInvoke,因为没有可能的验证结果需要取消= True(它们会只需更改控制前景)。

有没有更好的方法?

你可能想看看一个BackgroundWorker

+0

完美!正是我所需要的。 ProgressChanged和RunWorkerCompleted事件提供的控制级别胜过我的委托。谢谢:) – 2009-12-18 16:33:28

您可能会发现这样做的BackgroundWorker的好方法。

需要考虑的一件事是用户在验证完成运行之前尝试提交表单。

+0

+1 Thanks Pondidum。 TJMonk打了你几秒钟。但那也意味着我应该感谢你。 – 2009-12-18 16:34:41