注册 登录
编程论坛 ASP.NET技术论坛

大家知道怎么在60分钟后调激发一个事件的发生吗?该写在那个事件中?

airfei 发布于 2007-05-24 22:58, 767 次点击

我想请教大家一个取时间的问题.
我的愿意是想在到达某个时间就调用某一事件.
所以当我点击开始时,就记录下现在的系统时间.string time1 = DataTime.Now();然后想再过60分钟就调用另一个按钮事件.
这样该怎么实现!谢谢

大家能讲讲吗?其实我有一点思路,就是在当我点击开始的时候就
DateTime time1 = DataTime.Now();
DateTime time2 = time + 60;
if(time2 - time1 <=0)
{
//调用
}

但是应该不对,这个应该写在哪个事件中,来控制60分钟时,来调用另一事件

其实我是在做在线考试系统,不能用js,一用刷新就会重新计时,我是想在60分钟后自动交卷

5 回复
#2
rainic2007-05-25 01:11
用Ajax时不时地就向服务器查看时间过了60分钟没
#3
Kendy1234562007-05-25 09:12
难道不能用timer吗
#4
bygg2007-05-25 12:22
不能用Timer...用js可以控制...
#5
川流不息2007-05-25 14:46

用線程來做。

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Threading;


public partial class _Default : System.Web.UI.Page
{
Thread thread;
DateTime startTime;
DateTime endTime;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
startTime = DateTime.Now;
endTime = DateTime.Now;
thread = new Thread(new ThreadStart(Method2));
thread.Start();
}
}

public void Method2()
{
while (true)
{
endTime = DateTime.Now;
if (((TimeSpan)(endTime - startTime)).Minutes >= 60)
//這個地方,你可以把分鐘屬性改為小時,即Minutes改為Hours>=1
{
thread.Abort();
//在此寫你要做的提交動作。
break;
}
}
}

}

[此贴子已经被作者于2007-5-25 16:54:47编辑过]

#6
凌枫影2007-05-25 16:23

建議使用AJAX.NET之Timer控件
用法和VB中的時間控件一樣

Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.TextBox1.Text = Now
End Sub

但先要安裝AJAX的包

1