Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat mengemas kini label GUI dengan selamat dari benang bukan UI?
kemas kini gui
Dalam pengaturcaraan multi -threaded, mengemas kini antara muka pengguna grafik (GUI) dari benang selain benang GUI utama mungkin menjadi cabaran. Artikel ini membincangkan cara mudah untuk mengemas kini komponen kecil label dari benang berasingan.
<:> Soalan:
Pertimbangkan keadaan sedemikian: Tetingkap berjalan pada Thread1, dan memulakan benang berasingan dari tetingkap (Thread2). Apabila Thread2 memproses fail, matlamatnya adalah untuk mengemas kini label pada tetingkap untuk mencerminkan keadaan semasa Operasi Thread2.
Penyelesaian: Invoke () kaedah
Kaedah langsung mengemas kini elemen GUI dari benang non -UI melibatkan kaedah Invoke (). Kaedah ini menyediakan kaedah untuk mempercayakan pentauliahan pada benang UI untuk membolehkan komunikasi antara benang. pelaksanaan:
Contohnya, untuk mengemas kini label, anda boleh melaksanakan langkah -langkah berikut dalam benang kerja (Thread2):
Dalam kod ini, kaedah Invoke () menggunakan komisen tanpa nama sebagai parameter. Suruhanjaya ini mentakrifkan kod yang mengemas kini atribut teks pada benang UI. Harus diingat bahawa kaedah Invoke () akan menyekat pelaksanaan sehingga suruhanjaya selesai, yang menjadikan kod ini disegerakkan.
Atas ialah kandungan terperinci Bagaimanakah saya dapat mengemas kini label GUI dengan selamat dari benang bukan UI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!