Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用一个C#方法,并使其在10秒钟内返回_C#_.net_Wcf_Multithreading - Fatal编程技术网

调用一个C#方法,并使其在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

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


有没有一种方法我可以做一个
线程。睡眠(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。