読者です 読者をやめる 読者になる 読者になる

しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Silverlight 3 で追加された ApplicationService について試した

Silverlight 3 で追加された機能として、サービスがあります。サービスはアプリケーション起動から終了まで生存し続けるっぽいです。

仕組みは Application.Services プロパティと IApplicationService インターフェースから成り立っていて、このインターフェースを実装したクラスを Application.Services に追加すれば動きます。

一部分だけ切り出してもってきました。

App.xaml

<Application.Services>
    <local:SampleService x:Name="sample" />
</Application.Services>

SampleService.cs

public class SampleService : IApplicationService
{
    public void StartService(ApplicationServiceContext context)
    {
        // 開始処理
    }

    public void StopService()
    {
        // 終了処理
    }
}

いたってシンプルですね。スレッド起動して、時間のかかる処理や一定間隔で何かを実行させたり、コードビハインドから分離できるのでよさそうです。

ApplicationServiceContext には初期化パラメータ*1が入ってるので、実行時に挙動を変える事も簡単に出来そうですね。

*1:param タグで指定するのと同じ