Teema
Kasutajaliidese lõimede / perioodilise töötluse teema
Teemaleht, kus saab ühest kohast läbi käia WPF / WinFormsi, kasutajaliidese lõimi, async/await'i, Dispatcheri ning taimerite kasutuse valikut.
Miks see teema kergesti takerdub
WPF-is ja WinForms’is ei ole niipea, kui asünkroonne töö, kasutajaliidese uuendamine ja perioodiline töötlus segunevad, enam selge, milline lõim mida teeb. See teema on koondpunkt, mille kaudu saab kasutajaliidese hangumist, lõimedevahelisi uuendusi (cross-thread update) ja taimerivaliku küsimusi jälgida ühtse tervikuna.
- pärast
await-i ei ole selge, kuhu täitmine tagasi pöördub - kasutajaliideses töödeldavad ja taustale suunatavad toimingud segunevad
DispatcherTimer,System.Threading.TimerjaPeriodicTimervastutusalad ei ole selged- WinForms’i ja WPF-i hooldatavat koodikuju on raske näha
Küsimused, mis nõustamisel sageli esile tulevad
.Result/.Wait()on alles ja ekraan hangub kergestiTask.Run-i ja kasutajaliidese uuenduste piir ei ole selge- perioodiline töötlus on laiali ning tekib ajanihe (drift) või kattuv käivitus
- soovitakse vähendada sõltuvust kasutajaliidese lõimest, kuid mitte lõhkuda ekraanide vastutust
Sobiv lähenemine
Selles valdkonnas on praktikas tulemuslikum korrastada kasutajaliidese lõim ja perioodiline töötlus koos, mitte vaadata eraldi ainult async / await-i või ainult taimereid.
Kui vaadata seotud artikleid ja teenuselehti koos, on lihtsam otsustada, kas alustada disaini otsustest või teostuse parandustest.
Küsige meilt nõu
Kui see leht on lähedane olukorrale, millega te tegelete, küsige meilt nõu, lisades praeguse konteksti ja selle, millist tuge vajate.