请教达人关于C#多线程效率问题,非常着急!
此程序功能是通过WebService不停的刷新获取交易网站的多个交易数据,因此使用了多线程,但开发的过程中发现了一个奇怪的现象,在同时开一个或两个线程的时候,每个大概返回时间是1.2秒,3-4个线程的每个平均返回时间2.4秒,5-6个线程的每个平均返回时间大概是3.6秒,请教各位高人,是什么原因呢?
另外,开多个进程,即打开了多个应用程序,效率没有明显的下降(比如开了5个程序,每个进程开1-2个线程,那么平均返回时间基本也是1.2秒左右),也就是说,与网络和硬件无关。
请各位高人给点儿提示,希望能有解决办法,多谢,多谢!!!!!
代码如下:
// 根据传入的多个marketID建立多个线程
private void GetMarketMethod(ArrayList marketIDAry)
{
for (int i = 0; i < marketIDAry.Count; i++)
{
Thread thread = new Thread(new ThreadStart(GetMarketPrices));
thread.Priority = ThreadPriority.Highest;
thread.IsBackground = true;
thread.Start();
}
}
// 为了测试方便,这里仅仅调用了网站的登陆方法
public void GetMarketPrices()
{
GMethod.username = "aaa ";
GMethod.password = "ccc ";
GMethod.Login();
System.Diagnostics.Trace.WriteLine(marketID + ": " + DateTime.Now.TimeOfDay.ToString());
if(!IsStopCRY)
GetMarketPrices();
}
------解决方案--------------------你的 返回时间 是指什么? 那个函数的返回时间?
------解决方案--------------------多线程在这里有用吗
好像没有
webserver本身就有异步调用
你在服务器用多线程根本就没有用
你只是在浪费资源而已
--
只要你调用webserver 服务器会创建线程来维护连接
多线程应在你客户端用
------解决方案--------------------这可是webservice,本来就是多线程,你还要这样搞,何必。