我开发了一个Windows窗体程序(一个带用户登录的E-POS),但作为一项要求,我希望它在30分钟后将用户登出系统。我发现了以下代码,并使用它,但我得到错误:
字段初始值设定项不能引用非静态字段,方法或属性...
出现在代码中的_TimerTick
的第一个实例。
private System.Threading.Timer timer = new System.Threading.Timer(
_TimerTick,
null,
1000 * 30 * 60,
Timeout.Infinite);
private void _OnUserActivity(object sender, EventArgs e)
{
if (timer != null)
{
timer.Change(1000 * 30 * 60, Timeout.Infinite);
}
}
private void _TimerTick(object state)
{
var myLogin = new LoginForm(this);
myLogin.userCode = null;
MainControlsPanel.Hide();
// the user has been inactive for 30 minutes; log him out
}
答案 0 :(得分:0)
我的意见是在你的类构造函数中分配你的计时器:
而不是
private System.Threading.Timer timer = new System.Threading.Timer(
_TimerTick,
null,
1000 * 30 * 60,
Timeout.Infinite);
我会使用类似的东西:
class YourClass
{
private System.Threading.Timer timer;
public YourClass()
{
timer = new System.Threading.Timer(
_TimerTick,
null,
1000 * 30 * 60,
Timeout.Infinite);
}
//...
}
或者有another方式进行演练