Вызов метода C # и возврат в течение 10 секунд - PullRequest
2 голосов
/ 02 января 2009

Из веб-службы (WCF) я хочу, чтобы конечная точка заняла 10 секунд.

Есть ли способ, которым я могу сделать thread.sleep(10); для метода?

Ответы [ 4 ]

10 голосов
/ 02 января 2009

Вы можете создать метод-обертку, который будет выполнять соответствующий сон.

Thread.Sleep(TimeSpan.FromSeconds(10))
3 голосов
/ 02 января 2009

Начать новый поток, который спит в течение 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);
    }
0 голосов
/ 02 января 2009

Если это только для тестирования, прокси-класс может указывать на веб-прокси, который имитирует время ожидания. Используя Fiddler , вы можете написать запрос / ответ с задержкой на 10 секунд, а затем прокси-класс использует Fiddler для отправки запросов веб-службы, установив свойство «Proxy»:

IWebProxy proxy = new WebProxy("http://localhost:8888", true);
webService.Proxy = proxy;
0 голосов
/ 02 января 2009

Если вы имеете в виду без изменения кода на другом конце (на стороне сервера) вызова WCF (поскольку, если вы можете изменить код там, то ответ очевиден),

тогда нет ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...