Rumah >pembangunan bahagian belakang >C++ >Bolehkah pembina C# tidak segerak (async)?
c# Constructor Bolehkah pembina menggunakan kata kunci async?
Dalam C#, pembina adalah titik masuk contoh yang diasaskan. Berbeza dengan kaedah biasa, pembina tidak boleh menggunakan pengubah async. Sekatan ini berasal dari kekangan seni bina yang wujud.
Alasan di sebalik had:
Apabila menggunakan kata kunci async dalam pembina, pengkompil menghasilkan mesin negara tak segerak. Mesin negeri ini perlu mengakses contoh yang sedang dibina, tetapi contoh ini tidak tersedia sebelum pembina dilaksanakan. Mesin negeri tak segerak ini juga perlu disimpan dan dipulihkan sebagai sebahagian daripada kitaran hayat objek, termasuk semasa tempoh siri dan desertifikasi. Rawatan kerumitan ini akan membawa perbelanjaan yang besar dan isu -isu pengurusan objek yang berpotensi.
Perubahan Perubahan:
Walaupun async tidak boleh digunakan secara langsung dalam pembina, terdapat beberapa strategi alternatif:
Kaedah Asynchronous Static Static: Buat kaedah asynchronous statik untuk mengembalikan contoh kelas. Memulakan contoh dalam fungsi struktur swasta yang dipanggil oleh kaedah asynchronous. (Seperti yang ditunjukkan dalam kod yang disediakan oleh bahagian "Soalan Jawapan")
Kaedah dalaman:
pembungkusan kod asynchronous dalam kaedah standard dan panggilnya dari pembina. Kaedah ini menggunakan mod kesinambungan tak segerak untuk melambatkan pelaksanaan kod tak segerak.Atas ialah kandungan terperinci Bolehkah pembina C# tidak segerak (async)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!