0

Windows Phone 7.で特定の時間後に機能を実行する方法があるかのようにしたいのですが?たとえば、Android で次のコードを参照してください。

mRunnable=new Runnable() 
{

@Override
public void run() 
 {
 // some work done
}

今別の機能

public void otherfunction()
{
mHandler.postDelayed(mRunnable,15*1000);
}

これで、上位コードで行われた作業は、otherfunction()の実行から 15 秒後に実行されます。そして、Windows Phone 7でもこれが何らかの方法で可能かどうか知りたいです.? 事前にすべてに感謝..

4

3 に答える 3

1

スレッドを使用してそれを行うことができます:

var thread = new Thread(() =>
    {
        Thread.Sleep(15 * 1000);
        Run();
    });

thread.Start();

このようにして、Runメソッドは 15 秒後に実行されます。

于 2013-07-11T11:35:56.690 に答える
1

必要に応じて Reactive Extensions を使用できますが、実際には必要ありません。Timerでこれを行うことができます:

// at class scope
private System.Threading.Timer myTimer = null;


void SomeMethod()
{
    // Creates a one-shot timer that will fire after 15 seconds.
    // The last parameter (-1 milliseconds) means that the timer won't fire again.
    // The Run method will be executed when the timer fires.
    myTimer = new Timer(() =>
        {
            Run();
        }, null, TimeSpan.FromSeconds(15), TimeSpan.FromMilliseconds(-1));
}

Run メソッドは、スレッド プール スレッドで実行されることに注意してください。UI を変更する必要がある場合は、Dispatcher を使用する必要があります。

この方法は、待機のみを行うスレッドを作成するよりも優先されます。タイマーは、システム リソースをほとんど使用しません。タイマーが起動したときにのみ、スレッドが作成されます。一方、スリープ状態のスレッドは、かなり多くのシステム リソースを消費します。

于 2013-07-11T18:12:00.727 に答える
0

スレッドを作成する必要はありません。これは、 Reactive Extensions (リファレンスMicrosoft.Phone.Reactive)を使用すると、はるかに簡単に実行できます。

Observable.Timer(TimeSpan.FromSeconds(15)).Subscribe(_=>{
    //code to be executed after two seconds
});

コードは UI スレッドでは実行されないため、Dispatcher.

于 2013-07-11T17:55:47.853 に答える