从Web服务(WCF),我希望端点需要10秒才能完成。
我有办法在方法上做thread.sleep(10);
吗?
答案 0 :(得分:10)
您可以创建一个执行适当睡眠的包装器方法。
Thread.Sleep(TimeSpan.FromSeconds(10))
答案 1 :(得分:3)
启动一个休眠10秒的新线程,然后返回,这样运行方法运行的时间不会增加到10秒
using System.Threading;
public static WCF(object obj)
{
Thread newThread =
new Thread(new ThreadStart(Work));
newThread.Start();
//do method here
newThread.Join();
return obj;
}
static void Work()
{
Thread.Sleep(10000);
}
答案 2 :(得分:0)
如果你的意思是不改变WCF调用的另一端(服务器端)的代码,(因为如果你可以在那里更改代码,那么答案是显而易见的),
然后没有..
答案 3 :(得分:0)
如果这仅用于测试,您可以让代理类指向模拟超时的Web代理。使用Fiddler,您可以将请求/响应的脚本编写为延迟10秒,然后通过设置“代理”属性让代理类使用Fiddler发出Web服务请求:
IWebProxy proxy = new WebProxy("http://localhost:8888", true);
webService.Proxy = proxy;