System.Timers.Timer
クライアントがアクティブな接続を含むウィンドウ/タブを閉じた後、SignalR ハブで実行されているを停止したいと考えています。
サーバーコードを呼び出してサーバーにブール値を送信して、クライアントがまだ接続されているかどうかをサーバーに通知しようとしましたが、現在は機能していません。
window.onbeforeunload = function () {
profile.server.setIsConnected(false);
};
サーバ側:
public ProfileHub()
{
timer = new Timer(15000);
timer.Elapsed += (sender, e) => { timer_Elapsed(sender, e, _isActive); };
timer.AutoReset = false;
}
[Authorize]
private void timer_Elapsed(object sender, ElapsedEventArgs e, bool active)
{
timer.Stop();
if (active)
{
System.Diagnostics.Debug.WriteLine("Timer Started");
timer.Start();
}
else
{
System.Diagnostics.Debug.WriteLine("Timer Stopped");
return;
}
// process code
}
[Authorize]
public void SetIsActive(bool isActive)
{
_isActive = isActive;
}
これは可能ですか、私は正しい軌道に乗っていますか? の匿名デリゲートと関係があると思われますが、timer.Elapsed
完全にはわかりません。