关于c#的多线程处理 把你调WEBSERVICE那一部分写到线程里就行了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 单独开一个工作线程去执行WEBSERVICE,我想,楼主说的卡只是主窗体在执行 WEBSERVICE 从而得不到响应吧! 服务端是webSerivcse 写的,就是说服务器端默认就支持多用户操作。客户端是不是多线程的应该关系不大。如果要解决速度问题,除非把整个系统架构改为socket模式即: 服务端为socket多线程的server 客户端为socket的client另外,需要注意的是,并不见得完全是软件的问题,有可能是数据库的问题,网络环境的问题造成速度慢 主要是重webSerivcse 返回的数据量比较大 如果把 把数据库和webSerivcse 放在本地 执行速度是没问题的,, 我想如果线程解决不了这个问题能不能提点其他思路呢 2楼的大人就是思路啊……开一个专门的线程用于调用WebService,这样应该可以解决客户端卡的问题,但那并不是速度提高了……要想提高还要提高网速 多线程调用webservice有三种方法把,两个是用它自己提供的Async方法和Begin的方法,另外一个就是起个线程,执行webservice的方法 Thread myThread = new Thread( new ThreadStart(CallWebService));myThread.IsBackground = true;myThrad.Start()把调用webservice放到另外线程中执行 这个和多线程没关系把,webservice自己本身就有异步的操作,比如你的方法名为test,就会又个begintest的异步方法。或者也可以自己使用异步例如backgroundworkder来完成 各位大侠 是这样的 我的webService 在客户端是这样掉用 public class ServiceFunction { private localhost.Service1 WebService = new ZSERP.localhost.Service1();// public ServiceFunction(string sUrl)//sUrl是webservice的地址 { WebService.Url=sUrl; } public bool getUserPower(string sUserId, string sMoudle)//重写webService的方法 { return WebService.getUserPower(sUserId,sMoudle); }} ServiceFunction sf=new ServiceFunction(Conn.WebServiceAccount);// dsUser=sf.getUserPower(sUserId,sMoudle);//客户端调用webService的方法 static void Main() //入口函数 { ZSERP.GlobalClass.frmMain = new frmZSERPMain(); Application.Run( ZSERP.GlobalClass.frmMain ); }就是这样的设计模式 ,请问我该如何把webService 写到线程里去呢? 小弟我着急得很啊!!! 拜托各位前辈了这么来解决这个问题 ,非常感激!!!! Web服务的调用本身就是异步的。这里就不要用了,用了问题会复杂化,还达不到效果。看看能不能对Web服务接口进行改善。1.尽量传递少的数据。2.尽量调用少的方法来完成接口功能访问。 公司使用soa框架,用的也是webservice,有时需要异步处理事情。不希望让界面执行一个服务后,死掉。不知道各位网友有什么高招?谢谢 【*在线等*】DateTimePicker 出现了死循环问题 求助:c#调用单光子计数器API函数,采集循环随机次后程序死掉 我安装的vs.net 2003 后在建asp.net web应用程序时报错错误如下 C++代码转为C# 如何监控用户对exe文件的安装 C#中如何调用C++6 编写的.dll 类库。 如何将用户控件生成的dll文件转为ocx文件 winform能不能显示url连接的图片 送分!手快有手慢无。取5名三角最少的送! c#程序怎样在UNIX环境中运行 读取xml的问题 C#的WinForm中,如何实现控件的半透明?
客户端是不是多线程的应该关系不大。如果要解决速度问题,除非把整个系统架构改为socket模式
即:
服务端为socket多线程的server
客户端为socket的client另外,需要注意的是,并不见得完全是软件的问题,有可能是数据库的问题,网络环境的问题造成速度慢
myThread.IsBackground = true;
myThrad.Start()把调用webservice放到另外线程中执行
或者也可以自己使用异步例如backgroundworkder来完成
public class ServiceFunction
{
private localhost.Service1 WebService = new ZSERP.localhost.Service1();//
public ServiceFunction(string sUrl)//sUrl是webservice的地址
{
WebService.Url=sUrl;
}
public bool getUserPower(string sUserId, string sMoudle)//重写webService的方法
{
return WebService.getUserPower(sUserId,sMoudle);
}
} ServiceFunction sf=new ServiceFunction(Conn.WebServiceAccount);// dsUser=sf.getUserPower(sUserId,sMoudle);//客户端调用webService的方法
static void Main() //入口函数
{
ZSERP.GlobalClass.frmMain = new frmZSERPMain();
Application.Run( ZSERP.GlobalClass.frmMain );
}
就是这样的设计模式 ,请问我该如何把webService 写到线程里去呢? 小弟我着急得很啊!!! 拜托各位前辈了这么来解决这个问题 ,非常感激!!!!
看看能不能对Web服务接口进行改善。
1.尽量传递少的数据。
2.尽量调用少的方法来完成接口功能访问。
不希望让界面执行一个服务后,死掉。
不知道各位网友有什么高招?
谢谢