Perbezaan antara pemahaman yang lebih baik mengenai Invoke () dan BeginInvoke ()
Dalam bidang pengaturcaraan asynchronous,
dan sering muncul, mereka mempunyai kegunaan yang berbeza. Artikel ini bertujuan untuk menjelaskan perbezaan asas antara kedua -dua kaedah ini. Invoke()
BeginInvoke()
Kaedah komisen pelaksanaan serentak digunakan untuk memanggil benang yang sama. Sebaliknya, thread thread thread thread Suruhanjaya Pelaksanaan Asynchronous dan mengembalikan objek , yang boleh digunakan untuk memantau operasi tak segerak.
Delegate.Invoke()
Delegate.BeginInvoke()
Dalam aplikasi bentuk Windows, IAsyncResult
dan
Pastikan kaedah komisen dilaksanakan pada benang UI, menyekat benang panggilan sehingga operasi selesai.
juga melaksanakan kaedah komisen pada benang UI, tetapi ia tidak segerak dan membolehkan benang panggilan untuk meneruskan pelaksanaan tanpa menunggu untuk diselesaikan. Control.Invoke()
Control.BeginInvoke()
Control.Invoke()
Biasanya, Control.BeginInvoke()
Buat objek thread (seperti ) dan panggil
berbeza pada objek untuk memanggil secara langsung pada komisen. Objek Thread memberikan lebih banyak kawalan pengurusan benang, yang membolehkan tugas -tugas pemprosesan penggantungan, pemulihan dan keutamaan. Walau bagaimanapun, ia juga memperkenalkan kerumitan tambahan dan masalah penyegerakan yang berpotensi. BeginInvoke()
Atas ialah kandungan terperinci Invoke () vs BeginInvoke (): Bilakah menggunakan yang mana untuk operasi segerak dan tidak segerak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!