????????????????????????EMP??
???????????? ???????[ 2013/4/7 10:23:29 ] ????????
????3??BackgroundWorker???
????????????а?????BackgroundWorker????????????????????????????????????????????????????????
?????????????
????1???????????BackgroundWorker??????DoWork(??????)??ProgressChanged(???????) ??RunWorkCompleted(?????)?????
????2??????WorkerSupportsCancellation??WorkerReportsProgress?????true????????????????????????????棻
????3?????RunWorkerAsync() ???????????????IsBusy?????ж???????????????????У?
????4?????CancelAsync() ?????????????????????
????a???????????BackgroudWorker.CancellationPending?????????true??????????DoWork????в?????BackgroudWorker.CancellationPending??????DoWorkEventArgs??Cancel?????
????b??DoWork???????????е?????п????????????????????乤?????????????????????? true ??CancellationPending???????????????£?????????????????RunWorkerCompleted????????????RunWorkerCompletedEventArgs?? Cancelled ????????????? true??????????????????????????????????????????CancellationPending??????????ж??
????5???????DoWork???????????в??????κ???????????????????ProgressChanged??RunWorkerCompleted???????????????????
???????RunWorkerAsync()???????е?BeginInvoke()??????DoWork???????DoWork??????????????????????????????ProgressChanged??RunWorkerCompleted????????????????AsyncOperation?? Post() ?????????÷?????????“??????????”?С?
??????????????????????
????????????????BackgroundWorker?????????????????????????????????????????????????????????????????????????楨???????????????????????????????????????????????????????????????????????????
?????????????MSDN??????????????????????????????????????????л????
????????????????????????
????eg???ж?n????????
????1??1??0???????????????
????2????2??3????????????primes????n=5???????? n+=2 ???????????????
????3?????????primes?е??????????????n??????????????????????
????4???????????????????????3???“????????>n”???????ж?n????????????????????primes??
?????????????????
??????????????????????PrimeNumberCalculator??
????1???????????PrimeNumberCalculator??????ProgressChanged????????棩??CalculatePrimeCompleted??????????????
????2?????CalculatePrimeAsync(intnumberToTest?? object taskId)??????????????????????????????Guid taskId = Guid.NewGuid();???????????????????????CompletedEventArgs??ProgressChangedEventArgs??????UserState??????????????????????????????????????
????3?????????CancelAsync(object taskId)??????taskId?????AsyncOperation???????????????????????????ж?taskId??????????????ж???????????
???????????????????????????????????
????1?????????????????????AsyncOperationManager???AsyncOperation????????????????????????????????????ó??????????? ASP.NET?????????ó???? Windows ??????ó????????“??????????”???÷???????
????2??BackgroundWorker???????????ú????
????3???????ι??????????????????????????????????????????????
??????л?????????籾??????а?????????????????……
??????
![](/images/ad-banner/ad-banner.png)
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11