3

数秒ごとに値を返すメソッドを呼び出したい。Timerwithを使用してみましたelapsedEventandlerが、この場合、メソッドの戻り値の型は void です。TimerTaskこのクラスを使用して、Java で同じタスクを実行しました。

Visual Studio 2005 を使用しているので、.NET 2.0 にしたいのです。

以下は、私が問題を抱えているプログラムです。匿名メソッドを使用しようとしましたがresponse、この場合の値は匿名メソッドの外には存在しません:

public static string Run(string address)
{                     
    string response = "A";
    Timer t = new Timer();
    t.Elapsed += delegate 
    {                         
        response = callURL(address);
        console.writeln(response);
        // The actual response value is printed here                
    };          
    t.Interval = 3000;
    t.Start();                      
    Console.WriteLine("response string is " + response);
    // response string is A

    return response;
}

public static string callURL(string address)
{
    className sig = new ClassName(); 
    String responseBody = sig.getURL(address);

    return responseBody;
}

responseメソッドの値を取得して、Runメソッドの呼び出し元に送信するにはどうすればよいRunですか?

4

2 に答える 2

0

を作成しThread、スレッドに必要なメソッドを呼び出させ、スレッドに 5 秒間のスリープ時間を与えます。

Thread loopThread = new Thread(new ThreadStart(this.MainLoop));
loopThread.Start();

private void MainLoop()
{
     while(true)
     {
         // Do stuff
         Thread.Sleep(5000);
     }
}
于 2012-05-16T20:16:14.170 に答える