Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 17697|Odpoveď: 0

[Zdroj] Cross-thread operácia nie je platná: Control 'txtresult' prístupný z threa...

[Kopírovať odkaz]
Zverejnené 14. 12. 2015 15:27:31 | | |

Keď vytvárame formulárovú aplikáciu, niekedy potrebujeme získať informácie o aktuálnom formulári alebo zavolať ovládacie prvky iných formulárov.

Tu predstavujem dva spôsoby, ako to dosiahnuť.


Keď potrebujeme volať ovládacie prvky z iných foriem vo formulári, môžeme použiť ovládacie prvky. CheckForIllegaCrossThreadCalls=false;

Napríklad: Button.CheckForIllegalCrossThreadCalls=false;

Samozrejme, môžeme tiež vytvoriť celý tvar prepojený

Form.CheckForIllegalCrossThreadCalls=false;

To nám umožňuje pristupovať k ovládacím prvkom alebo vlastnostiam tejto formy v iných formách.

Toto nemusí byť najbezpečnejšia metóda a niekedy ladenie spôsobí chybu.


Tu predstavím ďalšiu metódu, ku ktorej sa dá pristupovať naprieč vláknami.

Invoke skočí na vlákno formulára, aby vykonal funkciu na delegátovi


Najprv musíme vyhlásiť komisiu.

public delegate void DelSetTime(object str);

Potom už len potrebujeme pripraviť funkciu, ktorú treba vykonať,

public void setTime(objekt str);

Teraz môžeme delegáta umiestniť na vlákno tvaru na vykonanie

Delegát d=nový DelsetTime(setTime);

Presne tak. Invoke(d,Datetime.Now.ToString());

Týmto spôsobom môžeme dosiahnuť cross-threaded prístup.


Každý formulár má vlákno formulára, ktoré je hlavne zodpovedné za dokončenie kresby formulára a ovládanie formulára

Toto vlákno nazývame vlákno formulára alebo hlavné vlákno.

Mnohokrát potrebujeme pridať vlákna do formulára na spracovanie dát, a potom môžeme tieto novo vytvorené vlákna nastaviť ako pozadie, keď je formulár uzavretý

Vlákno sa tiež skončí.

ThreadStart ths=nový ThreadStart(Demo);

Vlákno th= nové Vlákno(ths);

th. Start();

th. IsBackground=true;


Originál: http://bingdao.sinaapp.com/net%E4%BD%93%E7%B3%BB/380.html     






Predchádzajúci:Vstup dvojciferného znakového poľa sa zoradí pri vykonaní výstupu
Budúci:【iOS vývojový návod vydaný v lete】iPhone Tutorial
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com