Dalam semua contoh yang dapat saya temukan tentang penggunaan HttpClient
, digunakan untuk satu panggilan. Tetapi bagaimana jika saya memiliki situasi klien yang persisten, di mana beberapa permintaan dapat dibuat secara bersamaan? Pada dasarnya, apakah aman untuk memanggil client.PostAsync
2 utas sekaligus terhadap instance yang sama HttpClient
.
Saya tidak benar-benar mencari hasil eksperimen di sini. Sebagai contoh yang berfungsi bisa saja kebetulan (dan terus-menerus pada saat itu), dan contoh yang gagal dapat menjadi masalah kesalahan konfigurasi. Idealnya saya mencari jawaban otoritatif untuk pertanyaan penanganan konkurensi di HttpClient.
.net
c#-4.0
concurrency
dotnet-httpclient
Alex K
sumber
sumber
HttpClient
dan membuangnya dengan benar: stackoverflow.com/questions/15705092/…Jawaban:
Menurut MSDN , sejak .NET 4.5 Metode contoh berikut aman untuk thread (terima kasih @ischell):
sumber
Berikut ini artikel lain dari Henrik F. Nielsen tentang HttpClient di mana ia berkata:
" HttpClient default adalah cara paling sederhana di mana Anda dapat mulai mengirim permintaan. HttpClient tunggal dapat digunakan untuk mengirim sebanyak permintaan HTTP yang Anda inginkan secara bersamaan sehingga dalam banyak skenario Anda hanya dapat membuat satu HttpClient dan kemudian menggunakannya untuk semua permintaan Anda . "
sumber
Ditemukan satu posting forum MSDN oleh Henrik F. Nielsen (salah satu Arsitek utama HttpClient).
Ringkasan cepat:
sumber