DRAG DROP
You have a method named GetCustomerIDs that returns a list of integers. Each entry in the list
represents a customer ID that is retrieved from a list named Customers. The Customers list contains
1,000 rows.
Another developer creates a method named ValidateCustomer that accepts an integer parameter
and returns a Boolean value. ValidateCustomer returns true if the integer provided references a
valid customer. ValidateCustomer can take up to one second to run.
You need to create a method that returns a list of valid customer IDs. The code must execute in the
shortest amount of time.
What should you do? (Develop the solution by selecting and ordering the required code snippets.
You may not need all of the code snippets.)
Answer: See the explanation
Note:
* ParallelEnumerable.AsParallel Method
Enables parallelization of a query.
/ We parallelize the exution of the ValidateCustomer instances.
The answer misses to return the list of validCustomers (fourth code snippet).
The first code snipped should be first in the solution. You need a { for the } in the fourth code snippet too.
See this examples:
https://msdn.microsoft.com/it-it/library/dd460714(v=vs.110).aspx
.AsParralel() must follow the collection in from clause.
So, for me, the correct answer would be:
public List GetValidCustomers()
{
List validCustomers =
(from ci in customers.AsParallel()….)
return validCustomers
}
Agreed, you want the AsParallel as early as possible making sense. It will then run all customers as parallel and each task will wait for the slow ValidateCustomer method.
rao is right
conc. AsParallel
@see https://www.amazon.com/C-6-0-Nutshell-Definitive-Reference/dp/1491927062/ ch.23, p.949
Yes.
If it was added at last, anyway what’s the point.