Melaksanakan masa tamat untuk console.readline () dalam c#
Aplikasi konsol kerap bergantung pada
untuk input pengguna. Walau bagaimanapun, situasi timbul di mana masa tamat tindak balas diperlukan untuk mengelakkan program tidak terbatas. Console.ReadLine()
Pendekatan yang ada dan batasan mereka
Pelbagai penyelesaian wujud, tetapi banyak yang pendek:
- kehilangan fungsi: alternatif untuk sering kekurangan ciri -ciri penting seperti ruang backspace, padam, dan anak panah.
Console.ReadLine()
- Masalah Multi-Call: Panggilan berulang boleh membawa kepada tingkah laku yang tidak dapat diramalkan atau masalah threading.
- tidak cekap sibuk menunggu: Pelaksanaan timeout mudah sering menggunakan gelung sibuk yang berintensifkan sumber.
penyelesaian unggul: kelas
Reader
Pendekatan yang lebih baik ini menghindari sibuk menunggu untuk mekanisme masa tamat yang lebih efisien dan boleh dipercayai. Kelas
adat menggunakan benang latar belakang untuk menguruskan input, menawarkan kaedah ini: Reader
- : Membaca garis dengan tamat masa pilihan. Jika
Reader.ReadLine(int timeoutMillisecs = Timeout.Infinite)
ditinggalkan, ia menunggu selama -lamanya. timeoutMillisecs
- : Sama seperti
Reader.TryReadLine(out string line, int timeoutMillisecs = Timeout.Infinite)
, tetapi pulangan ReadLine
pada input yang berjaya dalam masa tamat, true
sebaliknya. Input boleh didapati dalam parameter false
jika berjaya. line
Contoh Penggunaan
untuk menggunakan penyelesaian ini:
instantiate kelas - .
Reader
Gunakan - atau
Reader.ReadLine()
dengan tamat masa yang anda inginkan (dalam milisaat). Reader.TryReadLine()
mengendalikan - jika
TimeoutException
kali keluar. Reader.ReadLine()
periksa nilai pulangan - dan akses input melalui parameter
Reader.TryReadLine()
. out
kelebihan pendekatan ini
Kaedah ini menawarkan beberapa manfaat utama:
- Fungsi yang dipelihara: mengekalkan semua ciri , termasuk pengendalian kunci khas.
Console.ReadLine()
- tingkah laku multi-call yang boleh dipercayai: mengendalikan pelbagai panggilan secara konsisten, memastikan hanya satu permintaan input aktif.
- Penggunaan sumber yang cekap: Menghindari pembasmian sibuk yang membazir.
- respons: Program ini tetap responsif walaupun pengguna tidak memberikan input dalam tempoh masa tamat.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan masa tamat untuk konsol.readLine () dengan fungsi yang dipelihara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn