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