Memahami PembatalanTokenSource Pelupusan dalam .NET
Kelas CancellationTokenSource
adalah penting untuk menguruskan pembatalan dalam aplikasi .NET. Walau bagaimanapun, pelupusan yang betul sering diabaikan, yang membawa kepada potensi kebocoran sumber. Artikel ini menjelaskan masa dan cara untuk membuang CancellationTokenSource
objek dengan berkesan.
Mengapa Buang Itu Penting
CancellationTokenSource
bergantung pada sumber yang tidak terurus (khususnya, KernelEvent). Kegagalan untuk melupuskannya dengan betul menyebabkan sumber ini kekal tidak dikeluarkan, menyebabkan kebocoran memori. Ini amat bermasalah dalam proses atau perkhidmatan yang berjalan lama.
Kaedah Pelupusan Berkesan
Strategi pelupusan optimum bergantung pada konteks aplikasi anda:
Menggunakan Penyata (untuk tugasan segerak atau sedia ditunggu): Jika tugasan pembatalan anda selesai serentak atau anda boleh menunggu penyelesaiannya dengan mudah, rangkumkan CancellationTokenSource
dalam pernyataan using
. Ini menjamin pelupusan apabila tugas selesai.
Teruskan Dengan Tugas (untuk tugas tak segerak): Untuk operasi tak segerak di mana pelupusan segera tidak mungkin, lampirkan ContinueWith
tugasan pada tugas pembatalan anda. Tugasan kesinambungan ini harus secara eksplisit melupuskan CancellationTokenSource
.
Pelupusan Eksplisit (untuk senario seperti PLINQ): Dalam kes kekurangan mekanisme penyegerakan yang wujud (mis., pertanyaan PLINQ), buang CancellationTokenSource
secara manual sebaik sahaja operasi tamat.
Sifat PembatalanTokenSource Penggunaan Tunggal
Adalah penting untuk diingat bahawa CancellationTokenSource
kejadian direka untuk kegunaan sekali sahaja. Ia tidak boleh ditetapkan semula atau digunakan semula selepas pembatalan. Membuat tika baharu untuk setiap permintaan pembatalan adalah penting untuk tingkah laku dan pengurusan sumber yang boleh diramal.
Amalan Terbaik
Untuk mengelakkan kebocoran sumber dan mengekalkan kestabilan aplikasi, sentiasa buang CancellationTokenSource
objek dengan segera apabila ia tidak lagi diperlukan. Gunakan teknik pelupusan yang sesuai berdasarkan sifat tugasan (segerak, tak segerak, atau lain-lain). Sentiasa buat CancellationTokenSource
baharu untuk setiap operasi pembatalan.
Atas ialah kandungan terperinci Bila dan Bagaimana Anda Harus Melupuskan Sumber PembatalanToken?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!