有于心急,所以把这篇文章弄到首页,如果写的比较垃圾,请大家原谅
最近要写一个像新浪乐居的程序,具体的是让每一个用户的体力按时间以不同的速度增加,我建了一个实体类代码如下:


using System;
using System.Collections.Generic;
using System.Text;
using Discuz.Data;
namespace PowerManage
{
public class PowerEntity
{
private int _Userid;
private int _interval;
private int _powervalue;
public int UserId
{
get { return _Userid; }
set { _Userid = value; }
}
public int Interval
{
get { return _interval; }
set { _interval = value; }
}
public int PowerValue
{
get { return _powervalue; }
set { _powervalue = value; }
}
public System.Timers.Timer time=new System.Timers.Timer();
public void PowerUp()
{
lock (this)
{
time.Interval = this._interval;
time.Enabled = true;
time.AutoReset = true;
time.Elapsed += new System.Timers.ElapsedEventHandler(UpdatePower);
time.Start();
}
}
private void UpdatePower(object sender, System.Timers.ElapsedEventArgs e)
{
this._powervalue=this._powervalue+1;
}
private void UpdataData(object sender, System.Timers.ElapsedEventArgs e)
{ }
}
}
也就是每个用户都给实例一个体力信息,里面封装一个计数器,然后按时间增加他的体力,对这个信息的打操作类代码如下:


1

2

3

4

5

6



7

8

9



10

11

12


13

14

15

16

17



18

19



20

21



22

23

24

25

26

27

28

29

30

31

32

33



34

35



36

37



38

39

40

41

42

43

44

45



46

47

48

49

50

51



52

53

54



55

56



57

58

59

60

61

62

63

64



65

66

67

68

69

70

71



72

73



74

75



76

77

78

79

80



81

82

83

84

85

86



87

88



89

90



91

92

93

94



95

96

97

98

99

100

101

102

接口:


1

2

3

4

5

6



7

8



9

10

11

12

13

14

15

16

不知道怎么回事我在demo.aspx里面这样写:


using System;
using System.Data;
using System.Configuration;
using System.Collections;
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 PowerManage;
using Discuz.Forum;
using Discuz.Common;
public partial class myspace_demo : System.Web.UI.Page
{
PowerManage.PowerManage pm = new PowerManage.PowerManage();
int uid = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
uid = Utils.StrToInt(ForumUtils.GetCookie("userid"), 0);
if (uid == 0)
{
Response.Redirect("/myspace/login.aspx");
return;
}
pm.Install(uid);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
TextBox1.Text = pm.GetPower(uid).ToString() + pm.userdic.ContainsKey(uid).ToString() + pm.userdic[uid].time.Interval.ToString();
}
}
怎么得到体力一直是0,好像那个计数器不起作用啊,请那位大哥帮忙解释下