Diskuze: OpenFileDialog ve formuláři v novém vlákně
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Podle mě pleteš dohromady "otevírání" dialogu a "výběr" tlačítka. Myslím, že ShowDialog() se nemůže spojovat s DialogResult.OK.
No mně přijde divný hlavně to, že z jednoho vlákna otevíráš druhý a v tom druhým vlákně použiješ
this.ShowDialog();
čímž používáš metodu objektu vytvořeného v tom prvním. Vždycky,
když jsem pracoval nebo experimentoval s vlákny, tak s tím byl problém
(Cross Threading) a ne vždycky to Visual Studio hlásilo jako chybu - někdy to
jen spadlo.
Nebude lepší v druhým vlákně dělat to zpracování, ať už to je
cokoliv?
Presne tak, mas tam bordel ve vlaknech. Ten kod v metode start uprav a vyhod tam ten threading task.
Pokud by sis ten kod co zavre okno hodil do try/catch, videl bys, ze to tam hazi vyjimku. Muzes si ji i aktivovat v Debug->Windows->Exception Settings a tam zaskrtnout celou vetev Common Language Runtime Exceptions.
Pripadne to cely muzes prekopat a misto volani Start jen rovnou na instanci tohohle formu zavolas nazevinstance.ShowDialog() .
Pokud bys chtel mit vic logiky v metode start, tak pak jen pouzijes OnShow() u formulare.
Zobrazeno 4 zpráv z 4.