调用C#方法,并返回需要10秒钟

时间:2009-01-02 15:35:34

标签: c# .net wcf multithreading

从Web服务(WCF),我希望端点需要10秒才能完成。

我有办法在方法上做thread.sleep(10);吗?

4 个答案:

答案 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;