我的应用程序的用户将 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。它陷入了无限循环。
我究竟做错了什么?