LongRunning בביצוע Task חדש?
שלום לכולם,
אני רושם תוכנית קטנה של ביצע טסים בלוף מספר פעמים.
אני יודע שכשאני פותח Task חדש אז לא בהכרח נפתח Task חדש וכיול להיות שטרד אחד מתבצע המספר Tasks וזה נקבע במנגנון פנימי.
הדבר מוביל אותי לשים LongRuning מתי שאני רוצה שה Task יתחיל מיד כי אני רוצה לקבל תוצאה כמה שיותר מהר.
דבר זה מוביל שהטרד נלקח לא מה Threadpoll.
רציתי לדעת איך אתם רושמים את הקוד מתי שאתם רוצים להפעיל מספר Tasks במקביל ולקבל תוצאה מהר ככל הניתן.
האם LongRunning זוהי הדרך הנכונה (למרות שה Task עשוי לעבוד זמן קצר)
הכנתי תכונית לדוגמא:
הקוד הזה מתבצע תוך שניה אחת. כמו שצריך ומצופה. אך אם נאי מוריד LongRunning זה יכול לרוץ מספר שניות על אותו טרד.
שלום לכולם,
אני רושם תוכנית קטנה של ביצע טסים בלוף מספר פעמים.
אני יודע שכשאני פותח Task חדש אז לא בהכרח נפתח Task חדש וכיול להיות שטרד אחד מתבצע המספר Tasks וזה נקבע במנגנון פנימי.
הדבר מוביל אותי לשים LongRuning מתי שאני רוצה שה Task יתחיל מיד כי אני רוצה לקבל תוצאה כמה שיותר מהר.
דבר זה מוביל שהטרד נלקח לא מה Threadpoll.
רציתי לדעת איך אתם רושמים את הקוד מתי שאתם רוצים להפעיל מספר Tasks במקביל ולקבל תוצאה מהר ככל הניתן.
האם LongRunning זוהי הדרך הנכונה (למרות שה Task עשוי לעבוד זמן קצר)
הכנתי תכונית לדוגמא:
קוד:
Task.Factory.StartNew(() =>
{
for (int i = 0; i < 10; i++)
{
Task.Factory.StartNew((inter) =>
{
Console.WriteLine("Starting at thread: {0}", System.Threading.Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("From pool: {0}", System.Threading.Thread.CurrentThread.IsThreadPoolThread);
System.Threading.Thread.Sleep(1000);
}, i, TaskCreationOptions.AttachedToParent | TaskCreationOptions.LongRunning);
}
}).Wait();