Pengubah async
Dalam pengaturcaraan asynchronous, kaedah perwakilan pengubah
tidak boleh ditakrifkan sebagai async
, yang membawa cabaran kepada pemaju yang menginginkan program itu tidak segerak. Main
async
Artikel ini membincangkan isu ini secara mendalam dan membincangkan kaedah penggantian mencapai tingkah laku tak segerak dalam aplikasi konsol.
Dalam Visual Studio 2012, kaedah dilarang sebagai async
. Walau bagaimanapun, dalam Visual Studio 2017 Update 3 (15.3) dan versi yang lebih tinggi, selagi atau
Main
. Ini membolehkan pemaju menulis kod berikut: async
Task
Task<T>
Kaedah ini seolah -olah menghalang benang utama, sama seperti penggunaan async
. Walau bagaimanapun, sebelum spesifikasi bahasa rasmi C# 7.1, tingkah laku ini masih merupakan hipotesis. Main
class Program { static async Task Main(string[] args) { Bootstrapper bs = new Bootstrapper(); var list = await bs.GetList(); } }
GetAwaiter().GetResult()
Apabila kaedah tidak boleh dilaksanakan, pemaju boleh mengadopsi salah satu kaedah alternatif berikut:
Konteks yang disesuaikan: Buat "gelung utama" yang disesuaikan dengan
serasi untuk aplikasi konsol. Kitaran ini bertindak sebagai bekas untuk kaedah asynchronous.
async
Oblock thread utama: Main
menghalang benang konsol utama sebelum kerja tak segerak selesai. Ini boleh dilaksanakan dalam kaedah berikut:
async
, pemaju boleh mengelakkan pembungkusan Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan pengaturcaraan asynchronous dalam aplikasi konsol C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!