调用一个C#方法,并使其在10秒钟内返回
从web服务(WCF)中,我希望端点需要10秒钟才能完成调用一个C#方法,并使其在10秒钟内返回,c#,.net,wcf,multithreading,C#,.net,Wcf,Multithreading,从web服务(WCF)中,我希望端点需要10秒钟才能完成 有没有一种方法我可以做一个线程。睡眠(10)方法?您可以创建一个进行适当睡眠的包装器方法 Thread.Sleep(TimeSpan.FromSeconds(10)) 如果您的意思是不更改WCF调用另一端(服务器端)的代码,(因为如果您可以更改那里的代码,那么答案是显而易见的) 那就没有了 启动一个休眠10秒的新线程,然后返回,这样Methods运行所需的时间就不会增加到10秒 using System.Threading; publ
有没有一种方法我可以做一个
线程。睡眠(10)编码>方法?您可以创建一个进行适当睡眠的包装器方法
Thread.Sleep(TimeSpan.FromSeconds(10))
如果您的意思是不更改WCF调用另一端(服务器端)的代码,(因为如果您可以更改那里的代码,那么答案是显而易见的)
那就没有了 启动一个休眠10秒的新线程,然后返回,这样Methods运行所需的时间就不会增加到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);
}
如果这只是为了测试,您可以让proxy类指向模拟超时的web代理。您可以使用脚本将请求/响应延迟10秒,然后让代理类使用Fiddler通过设置“proxy”属性发出web服务请求:
IWebProxy proxy = new WebProxy("http://localhost:8888", true);
webService.Proxy = proxy;
系统线程线程睡眠(10000);请澄清您的问题-为什么您不能让您的方法睡眠?我似乎找不到线程方法,让我完全限定它抱歉!Thread不是一个方法,它是System.Threading命名空间中的一个类,如Arjan在第一条注释中所示。Sleep是Thread类上的一个静态方法。请注意,这将花费leep大约10秒。在速度较慢的机器上,睡眠计时器的精度可以是多线程片~50ms。