Kaip „Windows“ nežino programos?
Kiekvienas, kuris naudojo „Windows“, matė kartotinį sistemos pranešimą, kuriame nurodoma, kad programa neatsako, bet kaip tiksliai „Windows“ tai žino? Šiandienos „SuperUser“ atsakymų ir atsakymų atsakymas yra atsakas į nesuprantamą skaitytojo klausimą.
Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.
„Matthias Ripp“ (Flickr) nuotrauka.
Klausimas
„SuperUser“ skaitytuvas „ArunPrasanth“ nori sužinoti, kaip „Windows“ žino, kad programa nereaguoja:
Kaip „Windows“ žino, ar programa neatsako? Ar ji nuolat apklausa visas veikiančias programas?
Kaip „Windows“ žino, ar programos nereaguoja?
Atsakymas
„SuperUser“ prisidėjęs reketas turi mums atsakymą:
Programa gauna įvykius iš „Windows“ pateiktos eilės. Jei programa tam tikrą laiką (5 sekundės) neapklauso įvykių eilės, pavyzdžiui, atlieka ilgą skaičiavimą, „Windows“ daro prielaidą, kad programa yra pakabinta ir įspėja vartotoją.
Kad išvengtumėte, taikomosiose programose turėtų būti skaičiuojami brangūs skaičiavimai darbuotojams arba suskaidomi apdorojimo būdai ir įsitikinkite, kad eilė bus reguliariai apklausta.
Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.