Ještě, pokud mohu, bych se zeptal na jednu drobnost s eventama. Protože já ve své aplikaci odchytávám těch událostí více a mohou být, samozřejmě, vyvolány i v okamžiku zaneprázdnění vlákna nějakou činností, jak je v .net technologii tato skutečnost ošetřena? Pokud je vyvolána nějaká událost, pak se spustí,je-li k dispozici, její ošetření. Pokud je ale součástí tohoto ošetření souvislý programový kód, ve kterém nemám doevents, pak tento kód "vytíží" pracovní vlákno a co se stane s případnými dalšími událostmi, které jsou v této době vyvolány? Existuje nějaký zásobník událostí, do kterého jsou ukládány a ve chvíli, kdy k tomu dám programu příležitost tak se jednotlivé požadavky vyřídí, nebo mají takovéto události platnost pouze určitou dobu a pak samy "vymizí" (doufám že to ne!)? Ptám se z jednoho prostého důvodu. Mám aplikaci, kterou jse, bohužel z neznalosti, chtěl udělat až příliš dokonalou a protože dělá více různých časově celkem náročných činností, vše řeším v samostatných vláknech. No a celé je to právě řízeno a organizováno prostřednictvím událostí (několik různých časovačů, ukončení nějaké činnosti spustí činnost jinou, atd...) (právě mé současné dotazy jsou vedeny snahou o celkové zjednodušení koncepce, protože fůru činností mohu, dle mých současných znalostí, celkem bez problému a s minimálními omezeními sloučit do jednoho vlákna). No a právě nyní se mi stává, že se mi celá aplikace po cca 2-3 dnech chodu v tichosti odporoučí (vypne) a já budu muset zjistit, čím to je (mám nějaké kontrolni výpisy chodu aplikace, tak je budu muset zkusit projít, naleznu-li v tom nějaké zákonitosti). A právě jednou z neznámých pro mne je hypotetická možnost, co se tak může stát, kdyby se nějaké dvě události sešly ve stejnou dobu, jestli si s tím systém poradí.
|