在c#中多次同时运行一个方法
发布时间:2020-12-16 00:18:49 所属栏目:百科 来源:网络整理
导读:我有一个返回 XML元素的方法,但该方法需要一些时间来完成并返回一个值. 我现在拥有的是什么 foreach (var t in s){ r.add(method(test));} 但这只会在上一个完成之后运行下一个语句.如何让它同时运行? 解决方法 您应该可以使用此任务: //first start a tas
我有一个返回
XML元素的方法,但该方法需要一些时间来完成并返回一个值.
我现在拥有的是什么 foreach (var t in s) { r.add(method(test)); } 但这只会在上一个完成之后运行下一个语句.如何让它同时运行? 解决方法
您应该可以使用此任务:
//first start a task for each element in s,and add the tasks to the tasks collection var tasks = new List<Task>(); foreach( var t in s) { tasks.Add(Task.Factory.StartNew(method(t))); } //then wait for all tasks to complete asyncronously Task.WaitAll(tasks); //then add the result of all the tasks to r in a treadsafe fashion foreach( var task in tasks) { r.Add(task.Result); } 编辑 var tasks = s.Select(t => Task<int>.Factory.StartNew(() => method(t))).ToArray(); //then wait for all tasks to complete asyncronously Task.WaitAll(tasks); //then add the result of all the tasks to r in a treadsafe fashion r = tasks.Select(task => task.Result).ToList(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |