ব্যাকগ্রাউন্ড ওয়ার্কারের জন্য টাস্ক সমান্তরাল গ্রন্থাগার প্রতিস্থাপন?


83

টাস্কের সমান্তরাল গ্রন্থাগারে কি এমন কিছু রয়েছে যা ব্যাকগ্রাউন্ড ওয়ার্কার শ্রেণীর চেয়ে প্রতিস্থাপন বা উন্নতি হিসাবে বিবেচিত হবে?

উইজার্ড-স্টাইলের ইউআই সহ আমার একটি উইনফর্মস অ্যাপ্লিকেশন রয়েছে এবং এটি দীর্ঘমেয়াদী কিছু কাজ করে। মানক অগ্রগতি বার এবং অপারেশন বাতিল করার ক্ষমতা সহ আমি একটি প্রতিক্রিয়াশীল ইউআই রাখতে সক্ষম হতে চাই। আমি ব্যাকগ্রাউন্ড ওয়ার্কার দিয়ে এটি আগে করেছি, তবে আমি ভাবছি যে এর পরিবর্তে কিছু টিপিএল নিদর্শন ব্যবহার করা যেতে পারে কিনা?


উত্তর:


91

Taskক্লাস শেষ একটি উন্নতি হয় BackgroundWorker; এটি প্রাকৃতিকভাবে নেস্টিং (পিতামাতার / সন্তানের কার্যাদি) সমর্থন করে, নতুন বাতিলকরণ API, টাস্কের ধারাবাহিকতা ইত্যাদি ব্যবহার করে

BackgroundWorkerজিনিসগুলি করার পুরানো পদ্ধতি এবং জিনিসগুলি করার নতুন Taskউপায় দেখানো আমার ব্লগে আমার একটি উদাহরণ রয়েছে । অগ্রগতি সম্পর্কে রিপোর্ট করা দরকার এমন কাজের জন্য আমার কাছে একটি ছোট সহায়ক সহায়ক ক্লাস রয়েছে কারণ আমি বাক্য গঠনটি বরং বিশ্রী দেখতে পাই। উদাহরণে ফলাফলের মান, ত্রুটির শর্তাবলী, বাতিলকরণ এবং অগ্রগতি প্রতিবেদন অন্তর্ভুক্ত।


প্রযুক্তিগতভাবে তার সঠিক উত্তর হওয়ায় এই এবং হ্যাচের উত্তরটির মধ্যে কঠিন সিদ্ধান্ত নেওয়া। যাইহোক, আপনার ব্লগটি দেখায় যে কীভাবে নতুন টাস্ক ক্লাসটি ব্যবহার করতে হয়, এবং এটিই আমি খুঁজছিলাম - ব্যাকগ্রাউন্ড ওয়ার্কারের একটি বিবর্তন। আমি আমার অ্যাপ্লিকেশনটিতে কোডের ভিত্তি হিসাবে আপনার উদাহরণ ব্যবহার করছি।
কিথ জি

4
কিছু দিন আগে আমি বিভিন্ন ব্যাকগ্রাউন্ড প্রসেসিং কৌশলগুলির একটি তুলনা লিখেছিলাম । বাসা বাঁধার অনুমতি দেওয়ার BackgroundWorkerসময় আরও সহজ অগ্রগতি প্রতিবেদন রয়েছে Task। দু'জনের মধ্যে আমি পছন্দ করি Task( বাসা বাঁধার অনুমতি দেওয়ার চেয়ে অগ্রগতি প্রতিবেদন সাফ করা অনেক সহজ)। যদিও তারা উভয় সাধারণ সমাধানের তুলনায় হালকা বছর। আমি যখন লোকেদের ব্যবহার Threadবা ব্যবহারের কথা শুনি তখন আমি ক্রিঞ্জ করি ThreadPool.QueueUserWorkItem। পটভূমি কাজের জন্য সঠিকভাবে ব্যবহার করা এগুলি চূড়ান্ততমতম।
স্টিফেন ক্লিয়ারি 26:25

আরও সহজ অগ্রগতি রিপোর্টিং? আপনি সমস্ত যদি শতাংশের প্রতিবেদন করতে চান তবেই। অন্য কোনও কিছুর প্রতিবেদন করার জন্য বিগিনভোক বা সিঙ্ক্রোনাইজেশন কনটেক্সট প্রয়োজন P পোস্ট কদর্যতা
পানাজিওটিস কানভোস

4
@ পানাগিওটিসকানাভোস: আপনি যেকোন স্বেচ্ছাচারিত বস্তু হিসাবে পাস করতে পারেন userState। যাইহোক, আমার শেষ মন্তব্যের পরে 2.5 বছরগুলিতে, Taskএর সাথে পরিপূরক করা হয়েছে IProgress<T>এবং Progress<T>যা BackgroundWorkerঅগ্রগতির চেয়ে পরিষ্কার এবং সহজ । আধুনিক কোডে, BackgroundWorkerআর ব্যবহার করার কোনও কারণ নেই।
স্টিফেন ক্লিয়ারি

হ্যাঁ, আমি ঠিক লক্ষ্য করেছি। কোনওভাবে, আমি টিপিএল ট্যাগ ক্লিক করে নতুন প্রশ্নগুলি খুঁজতে এই পোস্টটি শীর্ষে এসেছিল!
পানাগিওটিস কানভোস

23

পটভূমি কর্মী এখনও এটি অর্জনের একটি বৈধ উপায় - আপনি যদি একযোগে একাধিক বৃহত ক্রিয়াকলাপ চালাচ্ছেন তবে সমান্তরাল এক্সটেনশনগুলি বিবেচনার জন্য উপযুক্ত হবে, যদি এটির একমাত্র হয় তবে আমি ব্যাকগ্রাউন্ড ওয়ার্কারের সাথে লেগে থাকব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.