"অনুপযুক্ত ব্লকিং পদ্ধতি কল" কীভাবে উপযুক্ত করবেন?


29

আমি বর্তমানে কোটলিন করটাইনগুলি আরও উপকারের চেষ্টা করছি। তবে আমি একটি সমস্যার মুখোমুখি হয়েছি: এই কর্টিনগুলির অভ্যন্তরে মশি বা ওখটিপি ব্যবহার করার সময় আমি একটি সতর্কতা পেয়েছি:

"অনুপযুক্ত ব্লকিং পদ্ধতি কল"

এগুলি ঠিক করার সর্বোত্তম উপায় কী? আমি সত্যিই অনুপযুক্ত হতে চাই না ;-)


আমি ধরে নিয়েছি আপনি এই সতর্কতাটি দমন করতে চান না, তাই না?
সা Saeedদ এন্তেজারি

উত্তর:


12

সতর্কতা হ'ল এমন পদ্ধতি সম্পর্কে যা বর্তমান থ্রেডকে আটকে দেয় এবং কর্টিন সঠিকভাবে স্থগিত করা যায় না। এইভাবে, আপনি কর্টাইনগুলির সমস্ত সুবিধা হারাবেন এবং আবার থ্রেডের জন্য একটি চাকরিতে ডাউনগ্রেড করুন।

প্রতিটি কেস আলাদাভাবে পরিচালনা করা উচিত। স্থগিতযোগ্য HTTP কলগুলির জন্য আপনি ktor http ক্লায়েন্ট ব্যবহার করতে পারেন । তবে কখনও কখনও আপনার ক্ষেত্রে কোনও লাইব্রেরি নেই, সুতরাং আপনি নিজের সমাধান লিখতে পারেন বা এই সতর্কতাটি উপেক্ষা করতে পারেন।


20
সতর্কবার্তা উপেক্ষা করা প্রায়শই সঠিক জিনিস নয়, আপনি কমপক্ষে ব্লকিং কোডটি চালাতে পারবেন withContext(Dispatchers.IO)
মার্কো টপলনিক

2
আপনি যদি ব্লকিং কোডটি দিয়ে চালান withContext(Dispatchers.IO)তবে এটি আর অবরোধ করে না এবং সতর্কতাটি সঠিক নয়, তাই না?
নোলম্যান

@ নোলমান ভাল প্রশ্ন কারণ "কমপক্ষে" এমন জ্ঞান ধরেছেন যে এই প্রশ্নটি করছেন এমন কারও কাছে নেই। আপনি এই মোড়কটি পরিচয় করিয়ে দেওয়ার পরেও সতর্কতা দূরে যায় না।
অ্যালেক্স

14

@Throws(IOException::class)(কোটলিন ১.৩..6১) দ্বারা বর্ধিত স্থগিতাদেশিক ফাংশন কল করার সময় আপনি এই সতর্কতাটি পান । নিশ্চিত না যে এটি উদ্দেশ্যযুক্ত কিনা। যাইহোক, আপনি সেই টিকাটি মুছে ফেলা বা ক্লাসে পরিবর্তন করে এই সতর্কতাটি ঠিক করতে পারেন Exception


আসুন একে দমনকারী হিসাবে ডাকি, ফিক্সিং নয় :) আমি মনে করি, স্ট্যাটিক বিশ্লেষক এটিকে হাইলাইট করে কারণ যে পদ্ধতিটি আইওএক্সেপশন ছুড়ে দেয় তা সাধারণত ব্লক হয়ে যায় এবং শেষ করতে কিছুটা মূল্যবান সময় নেয়।
ইভান শাফরান

: আমি সম্পর্কে IOException সহায়ক এই ব্যাখ্যা পাওয়া discuss.kotlinlang.org/t/...
ইভান Shafran
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.