দ্রুততম 3.0 এ বিভিন্ন পদ্ধতির মধ্যে তুলনা
1. ঘুম
এই পদ্ধতির কোনও কল ফিরে নেই। 4 সেকেন্ডের মধ্যে এই লাইনটি কার্যকর করার জন্য সরাসরি কোডগুলি রাখুন। সময় শেষ না হওয়া পর্যন্ত এটি পরীক্ষার বোতামের মতো ইউআই উপাদানগুলির সাথে পুনরাবৃত্তি করা বন্ধ করবে। যদিও ঘুম কিক করার সময় বোতামটি একধরনের হিমায়িত হয়, তত্ক্ষণাত ক্রিয়াকলাপের সূচকগুলির মতো অন্যান্য উপাদান এখনও হিমায়িত ছাড়াই ঘুরছে। ঘুমের সময় আপনি এই ক্রিয়াটি আবার ট্রিগার করতে পারবেন না।
sleep(4)
print("done")//Do stuff here

2. প্রেরণ, সম্পাদন এবং টাইমার
এই তিনটি পদ্ধতি একইভাবে কাজ করে, এগুলি সমস্ত কল ব্যাক সহ ব্যাকগ্রাউন্ড থ্রেডে চলছে, কেবলমাত্র বিভিন্ন সিনট্যাক্স এবং কিছুটা পৃথক বৈশিষ্ট্য সহ।
প্রেরণটি সাধারণত ব্যাকগ্রাউন্ড থ্রেডে কিছু চালাতে ব্যবহৃত হয়। এটি ফাংশন কল অংশ হিসাবে কলব্যাক আছে
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(4), execute: {
print("done")
})
পারফর্ম আসলে একটি সরল টাইমার। এটি বিলম্বের সাথে একটি টাইমার সেট আপ করে এবং তারপরে নির্বাচক দ্বারা ফাংশনটি ট্রিগার করে।
perform(#selector(callback), with: nil, afterDelay: 4.0)
func callback() {
print("done")
}}
এবং পরিশেষে, টাইমার কলব্যাক পুনরাবৃত্তি করার ক্ষমতাও সরবরাহ করে, যা এই ক্ষেত্রে কার্যকর নয়
Timer.scheduledTimer(timeInterval: 4, target: self, selector: #selector(callback), userInfo: nil, repeats: false)
func callback() {
print("done")
}}
এই তিনটি পদ্ধতির জন্য, আপনি যখন এগুলি ট্রিগার করতে বাটনে ক্লিক করবেন তখন ইউআই হিমায়িত হবে না এবং আপনাকে আবার এটিতে ক্লিক করার অনুমতি দেওয়া হবে। আপনি যদি আবার বোতামটিতে ক্লিক করেন তবে আরেকটি টাইমার সেট আপ হয়ে যাবে এবং কলব্যাকটি দু'বার ট্রিগার হবে।

উপসংহারে
চারটি পদ্ধতির কোনওটিই কেবল নিজের দ্বারা যথেষ্ট ভাল কাজ করে না। sleep
ব্যবহারকারীর মিথস্ক্রিয়া অক্ষম করবে, সুতরাং স্ক্রিনটি " হিমশীতল " (আসলে নয়) এবং খারাপ ব্যবহারকারীর অভিজ্ঞতার ফলস্বরূপ। অন্য তিনটি পদ্ধতি স্ক্রিনকে হিমায়িত করবে না, তবে আপনি এগুলি একাধিকবার ট্রিগার করতে পারেন এবং বেশিরভাগ সময় ব্যবহারকারীকে আবার কল দেওয়ার অনুমতি দেওয়ার আগে আপনি কলটি ফিরে না আসা পর্যন্ত অপেক্ষা করতে চান।
সুতরাং আরও ভাল ডিজাইন স্ক্রিন ব্লকিংয়ের সাথে তিনটি অ্যাসিঙ্ক পদ্ধতির একটি ব্যবহার করবে। ব্যবহারকারী যখন বোতামটিতে ক্লিক করেন, উপরে একটি স্পিনিং ক্রিয়াকলাপ সূচকটি দিয়ে কিছুটা স্বচ্ছ ভিউ দিয়ে পুরো স্ক্রিনটি কভার করুন, ব্যবহারকারীকে বলুন যে বোতামটি ক্লিক করা হচ্ছে। তারপরে কল ব্যাক ফাংশনে ভিউ এবং ইন্ডিকেটরটি সরান, ব্যবহারকারীকে বলবেন যে ক্রিয়াটি সঠিকভাবে পরিচালনা করা হয়েছে ইত্যাদি etc.