একটি ফাংশন কল করুন এবং সি # এর জন্য কখনই অপেক্ষা করবেন না


26

আমার এমভিসি 4 ওয়েব অ্যাপ্লিকেশনটিতে আমার কাছে একটি কন্ট্রোলার রয়েছে যাতে এমন একটি ক্রিয়া রয়েছে যা অন্য ফাংশনটি কল করার প্রয়োজন। এই ফাংশনে যা ঘটে থাকে অর্থাৎ রিটার্ন মানটি আমার ক্রিয়াকলাপের জন্য গুরুত্বপূর্ণ নয়। আমি কীভাবে সেই ফাংশনটি কল করতে পারি এবং এটি কার্যকর হওয়ার জন্য কখনই অপেক্ষা করতে পারি না?

আমি মনে করি এটি অ্যাসিঙ্ক দ্বারা করা যেতে পারে তবে আমার বক্তব্যটি সম্পদ ব্যবহার করা নয়, কেবল ফাংশনটি কল করুন এবং কখনও যা ঘটে তার জন্য অপেক্ষা করবেন না।

আমাকে কিছু পরামর্শ দিন।



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

ধন্যবাদ, আমি বুঝিয়েছি যে সর্বোত্তম এবং অনুকূলিতকরণের উপায়টি, আমি মনে করি সবচেয়ে ভাল উপায়টি হল টাস্ক.আরন এবং এমভিসিতে ওয়েবএপি ব্যবহার করে, ব্যবহারকারীর উপর ভিত্তি করে @ ব্যবহারকারী ৮১৪০8 উল্লিখিত লিঙ্কের উপর ভিত্তি করে, সম্ভবত আমি কেবল একটি জাভাস্ক্রিপ্ট সমাধান ব্যবহার করতে পারি, তবে আমার মনে হয় এটি নয় পেশাদারী!
ব্যবহারকারী 2675751

উত্তর:


40
private void Demo()
{
    // Do something, given that the result doesn't matter.
}

public void Do()
{
    Task.Factory.StartNew(this.Demo);

    // The following line will be executed without waiting for the result.
    DoSomethingElse();
}

মনে রাখবেন যে ফলাফল সম্পর্কে চিন্তা না করে বা এটি ফেলে দিতে পারে এমন ব্যতিক্রমগুলি সম্পর্কে কোনও পদ্ধতি শুরু করা ঝুঁকিপূর্ণ।

যদি একটি ব্যতিক্রম একটিতে ছুঁড়ে ফেলা হয় তবে Taskএটি আপনার অবধি লুকানো থাকবে:

  1. ফলাফল পর্যবেক্ষণ করুন,
  2. Wait() কাজের জন্য, বা:
  3. জিসি চূড়ান্তকারীকে ডেকে আনে Task

আপনি নিজেকে 1. এবং 2 হ্যান্ডেল করতে পারেন পদ্ধতিটি কল করার অল্প সময়ের পরে বা আপনি myTask.OnComplete(myErrorHandler, TaskContinuationOptions.OnlyOnFaulted)যখন মূল টাস্কটি ব্যতিক্রম ছুঁড়ে ফেলেন তখন চালানোর সাথে একটি ধারাবাহিকতা সংযুক্ত করতে পারেন । 3. আপনার প্রক্রিয়া ক্রাশ হবে; এটা করবেন না।


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