Người dùng HTML loại ứng dụng của tôi vào một điều khiển TextBox.Làm cách nào để hủy và khởi động lại đúng quy trình BackgroundWorker?
Tôi muốn ứng dụng của mình xác thực tính năng nhập của họ trong nền.
Vì tôi không muốn búa dịch vụ xác thực, tôi đã cố gắng xây dựng trong một giây chậm trễ trước mỗi lần xác thực.
Tuy nhiên, dường như tôi không thể ngắt chính xác quy trình BackgroundWorker đã chạy.
trực quan mã cơ bản của tôi:
Sub W3CValidate(ByVal WholeDocumentText As String) 'stop any already-running validation If ValidationWorker.IsBusy Then ValidationWorker.CancelAsync() 'wait for it to become ready While ValidationWorker.IsBusy 'pause for one-hundredth of a second System.Threading.Thread.Sleep(New TimeSpan(0, 0, 0, 0, 10)) End While End If 'start validation Dim ValidationArgument As W3CValidator = New W3CValidator(WholeDocumentText) ValidationWorker.RunWorkerAsync(ValidationArgument) End Sub
Dường như sau khi gọi CancelAsync BackgroundWorker tôi(), IsBusy của nó không bao giờ trở thành False. Nó bị mắc kẹt trong một vòng lặp vô hạn.
Tôi đang làm gì sai?
Ý tôi là thoát khỏi thủ tục nếu e.Cancelled là đúng. – Pat