1

C# wiforms を使用してアプリケーションを開発しようとしています。void sendEmail(){}インターネット接続が確立されている場合にのみ、クラスで関数を実行したい。私が使用した方法は、bool checkConnection(){}関数が while ループを無限にループし、ping 要求を google.com に送信することです。ping が成功すると、sendEmail(){}関数によって関数が呼び出されcheckConnection()ます。

しかし、これがこれを行うためのベストプラクティスではないことはわかっています。C# のカスタム イベントについて非常に混乱しています。カスタム イベントを使用してこのタスクを実行する方法。簡単な説明で答えを期待しています。

前もって感謝します

4

1 に答える 1

1

C# でスケジューラ タスクのような機能を構築しようとしているとのことですが、私の理解に基づいて、Windowsサービスは、インターネットの可用性をリッスンし、アプリケーションがオンラインになったときにメール送信操作を実行するなどのタスクを実行します。

WRTo イベントでは、アプリの実行時にアプリケーション イベントを発生させる独自のイベント エンジンを構築できます。その後、保留中のタスクを一覧表示するデータベース エントリが作成されます。データベースを読み取り、インターネットの可用性に基づいて、または何らかの条件に基づいてジョブを実行する Windows サービスのようなバックグラウンド ジョブがあります。

正確なユースケースとこれまでに試したことをより明確にすることができれば、コミュニティはあなたをより良く助けることができます.

サンプル クラス Observable { public event ImageUploadeventHandler InternetcOnnected;

public void DoSomething()
{
    ImageUploadeventHandler handler = InternetcOnnected;
    if (handler != null)
    {
        handler(this, EventArgs.Empty);
    }
    }
}
class Observer
{
    public void HandleEvent(object sender, EventArgs args)
    {
        // upload the image to the online service
    }
}
于 2016-02-28T11:20:06.020 に答える