C# 多线程问题
List<myService> li = new List<myService>() {
new myService(){cid=1,urls="http://www.jd.com",isvisible=true,times=5},
new myService(){cid=2,urls="http://www.ac.com",isvisible=true,times=4},
new myService(){cid=3,urls="http://www.bc.com",isvisible=true,times=3},
new myService(){cid=4,urls="http://www.adbc.com",isvisible=false,times=2},
new myService(){cid=5,urls="http://www.fbc.com",isvisible=true,times=4}
};
我现在要定时访问上面集合中 isvisible=true ,访问的时间是各自的times属性,不知道用多线程如何处理,请哪位指点一下,谢谢 --------------------编程问答-------------------- myService类中创建线程,线程里面延时你的times时间,或者用System.Threading.Timer --------------------编程问答-------------------- 给每个myService扩展一下,加个定时器,再加个OnTimer()就可以了 --------------------编程问答--------------------
myService 创建线程?我现在myService 中只有属性,是EF 自动生成的 --------------------编程问答--------------------
生成了你不会改啊。不能改你不能写个子类扩展啊 --------------------编程问答--------------------
给每个myService扩展一下,加个定时器,再加个OnTimer()就可以了
我已经扩展了,加个 public System.Timers.Timer atime { get; set; } ,但是不明白你的 OnTimer()方法,这里面写什么? --------------------编程问答-------------------- 没明白你这题的意思;大概的思路为下
单独创建一个线程来访问这个对象, 对象访问要记得加lock。。。。 --------------------编程问答-------------------- 你这描述太模糊了 都没明白 --------------------编程问答--------------------
给每个myService扩展一下,加个定时器,再加个OnTimer()就可以了
我已经扩展了,加个 public System.Timers.Timer atime { get; set; } ,但是不明白你的 OnTimer()方法,这里面写什么?
Timer到时间就调用OnTimer(),
OnTimer()里就是你要做的工作了,检查isvisible=true, 访问指定的站点?
--------------------编程问答-------------------- 求指导
我现在写到文件中字符都是一样,我真正要写的是把每条记录的网址写到文本文件中,这是我的代码,该如何修改,谢谢
--------------------编程问答--------------------
private void OnTimer(object sender, ElapsedEventArgs e)
{
lock (this)
{
string strMessage = "id=" + m.cid + " ,url=" + m.urls;
myString.LogTxt("d:\\a.txt", strMessage + DateTime.Now.ToString());//把实体的信息写入到文本文件中
}
}
private void GetList()
{
tUrlService dal=new tUrlService();
var list = dal.GetList(true);
for (int i = 0; i < list.Count(); i++)
{
var item = list[i] as TimeService;
if (item.isvisible)
{
m = item;//定义的全局实体
item.atime = new System.Timers.Timer();
item.atime.Elapsed += new ElapsedEventHandler(OnTimer);
item.atime.Interval = item.times * 1000;//程序运行的间隔时间
item.atime.Enabled = true;
}
}
}
给每个myService扩展一下,加个定时器,再加个OnTimer()就可以了
我已经扩展了,加个 public System.Timers.Timer atime { get; set; } ,但是不明白你的 OnTimer()方法,这里面写什么?
Timer到时间就调用OnTimer(),
OnTimer()里就是你要做的工作了,检查isvisible=true, 访问指定的站点?
我如何把参数传到OnTimer方法里 --------------------编程问答--------------------
给每个myService扩展一下,加个定时器,再加个OnTimer()就可以了
我已经扩展了,加个 public System.Timers.Timer atime { get; set; } ,但是不明白你的 OnTimer()方法,这里面写什么?
Timer到时间就调用OnTimer(),
OnTimer()里就是你要做的工作了,检查isvisible=true, 访问指定的站点?
我如何把参数传到OnTimer方法里
不用传的,你的OnTimer就在myService里,所有的数据myService不都有了么
补充:.NET技术 , C#