База ответов ИНТУИТ

Параллельное программирование с помощью языка C#

<<- Назад к вопросам

Какой вывод наиболее вероятен для следующего фрагмента:
 static void Main()  {   Task t1 = Task.Factory.StartNew(() =>  Console.Write(“A”));  Task t2 = Task.Factory.StartNew(() => {  Task t3 = Task.Factory.StartNew(() =>  Console.Write(“B”));  Console.Write(“C”);  });  }  

(Отметьте один правильный вариант ответа.)

Варианты ответа
CBA
ACB(Верный ответ)
ни один из перечисленных вариантов не возможен
BCA
Похожие вопросы
Какой вывод для следующего фрагмента является наиболее вероятным:
 Task t = Task.Factory.StartNew( () =>  {   Task t1 = Task.Factory.StartNew( () =>   Console.Write (“1”));   Task t2 = Task.Factory.StartNew( () =>   Console.Write (“2”));   Console.Write (“3”);  });  
Следующий фрагмент кода приводит к действиям планировщика:
 static void Main()  {  ..  Task t1 = Task.Factory.StartNew( () =>  SomeWork());  Task t2 = Task.Factory.StartNew( () =>  SoweWork());  ..  }  
Следующий фрагмент приводит к действиям планировщика:
 static void Main()  {  Thread thread = new Thread(() => {    f1();   Task t = Task.Factory.StartNew(() => f2());   });  thread.Start();  }  
Какие методы типа Task и объекта типа Task предполагают блокировку текущего потока до завершения задачи
Для ожидания завершения задачи типа Task<int> можно использовать
Объявление Task t2 = t1.ContinueWith(..) гарантирует
Следующий фрагмент приводит к действиям планировщика:
 static void Main()  {  Thread thread = new Thread(() => {    Parallel.Invoke(f1, f2);  f3();  });  thread.Start();  }    
Следующий фрагмент приводит к действиям планировщика
 static void Main()  {   ThreadPool.QueueUserWorkItem(f1,);  ThreadPool.QueueUserWorkItem(f2,);  ThreadPool.QueueUserWorkItem(f3); }  
Для параллельного выполнения следующего LINQ-запроса необходимо:
 var q = Enumerable.Range(1, 100000).Select( i => f(i)).Where(d => d% 11);  
Блочное (динамическое) разделение данных осуществляется при выполнении следующего PLINQ-запроса: