【发布时间】:2010-10-12 17:14:43
【问题描述】:
我的应用程序的用户将 HTML 类型输入到 TextBox 控件中。
我希望我的应用程序在后台验证他们的输入。
因为我不想锤击验证服务,所以我尝试在每次验证之前建立一秒延迟。
但是,我似乎无法正确中断已经运行的 BackgroundWorker 进程。
我的 Visual Basic 代码:
子 W3CValidate(ByVal WholeDocumentText 作为字符串) '停止任何已经运行的验证 If ValidationWorker.IsBusy Then ValidationWorker.CancelAsync() '等待它准备好 While ValidationWorker.IsBusy '暂停百分之一秒 System.Threading.Thread.Sleep(新时间跨度(0、0、0、0、10)) 结束时 万一 '开始验证 Dim ValidationArgument As W3CValidator = New W3CValidator(WholeDocumentText) ValidationWorker.RunWorkerAsync(ValidationArgument) 结束子似乎在调用了我的 BackgroundWorker 的 CancelAsync() 之后,它的 IsBusy 永远不会变为 False。它陷入了无限循环。
我做错了什么?
【问题讨论】:
-
我的意思是如果 e.Cancelled 为真则退出程序。
标签: .net multithreading backgroundworker