我目前正在编写一个程序,它从用户那里获取输入并向服务器发出一个http get请求。请求将在一个对象中发回数据,我将返回到一个对象内的演示者我有一个问题需要了解哪里线程适合这种特定的设计模式。让我们说我的演示者有X种方法:
public void method1()
{
//Make call to service project to execute http request
someobject = serviceRequest.MakeRequest();
}
public void method2()
{
//Make call to service project to execute http request
someobject = serviceRequest.MakeAnotherRequest();
}
public void method3()
{
someobject = serviceRequest.Make3rdRequest();
}
如何在单独的线程中启动这些方法?任何帮助表示赞赏。顺便说一下,我使用.net 3.5。如果某人的解决方案要求,我可以访问VS2010。感谢。
答案 0 :(得分:1)
您可以使用Task
:
List<Task> tasks = new List<Task>();
tasks.Add(new Task(() => serviceRequest.MakeRequest()));
tasks.Add(new Task(() => serviceRequest.MakeAnotherRequest()));
tasks.Add(new Task(() => serviceRequest.Make3rdRequest()));
//...
//Somewhere in your code
await Task.WhenAll(tasks);
此处的每项任务都会添加到线程池中,您可以使用WhenAll
或一系列其他方法来控制和访问任务及其返回值。