【紧急】timer使用

ShanShanYouWen 2011-05-29 09:06:10
现在我有一个系统想实现启动时自动下载文件,设定的时间是根据存在数据库中的时间来判断。请问如何实现自己设定时间内下载文件,下面是循环读取符合要求下载的文件。给位高手,麻烦支些高招给我,本人不尽感激 谢谢!!!!!!!!


for (int i = 0; i < Temp.dt.Rows.Count; i++)
{
int hour = Convert.ToInt32(Temp.dt.Rows[i]["TimeIntervalHour"]);
int minu = Convert.ToInt32(Temp.dt.Rows[i]["TimeIntervalMinu"]);
int second = Convert.ToInt32(Temp.dt.Rows[i]["TimeIntervalSecond"]);


//this.timer1.Interval = (hour * 3600 + minu * 60 + second) * 1000;
int time = (hour * 3600 + minu * 60 + second) * 1000;



string lev = Temp.dt.Rows[i]["ProductLev"].ToString();
string filetype = Temp.dt.Rows[i]["FileType"].ToString();
string localpath = Temp.dt.Rows[i]["LocalPath"].ToString();
string ftpip = Temp.dt.Rows[i]["FtpIP"].ToString();
int port = Convert.ToInt32(Temp.dt.Rows[i]["FtpPort"]);
string ftpuid = Temp.dt.Rows[i]["FtpUid"].ToString();
string ftppwd = Temp.dt.Rows[i]["FtpPwd"].ToString();

getfile(lev,fietype,localpath,ftpip,port,ftpuid,ftppwd);//下载文件

}
...全文
146 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ShanShanYouWen 2011-06-01
  • 打赏
  • 举报
回复
谁会?帮帮忙
让爱延续 2011-05-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 youwen1988 的回复:]
设定的时间是根据存在数据库中的时间来判断
[/Quote]

设定时间?
ShanShanYouWen 2011-05-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 icedmilk 的回复:]
Don't be afraid of things you never touched.
[/Quote]

我是把thread.sleep(time)放进下面的代码 你看看怎么改

private void timer_Tick(object sender, EventArgs e)
{
for (int i = 0; i < Temp.dt.Rows.Count; i++)
{
int hour = Convert.ToInt32(Temp.dt.Rows[i]["TimeIntervalHour"]);
int minu = Convert.ToInt32(Temp.dt.Rows[i]["TimeIntervalMinu"]);
int second = Convert.ToInt32(Temp.dt.Rows[i]["TimeIntervalSecond"]);


//this.timer1.Interval = (hour * 3600 + minu * 60 + second) * 1000;
int time = (hour * 3600 + minu * 60 + second) * 1000;



string lev = Temp.dt.Rows[i]["ProductLev"].ToString();
string filetype = Temp.dt.Rows[i]["FileType"].ToString();
string localpath = Temp.dt.Rows[i]["LocalPath"].ToString();
string ftpip = Temp.dt.Rows[i]["FtpIP"].ToString();
int port = Convert.ToInt32(Temp.dt.Rows[i]["FtpPort"]);
string ftpuid = Temp.dt.Rows[i]["FtpUid"].ToString();
string ftppwd = Temp.dt.Rows[i]["FtpPwd"].ToString();

Thread.Sleep(time);
getfile(lev,fietype,localpath,ftpip,port,ftpuid,ftppwd);//下载文件

}
Icedmilk 2011-05-29
  • 打赏
  • 举报
回复
Don't be afraid of things you never touched.
ShanShanYouWen 2011-05-29
  • 打赏
  • 举报
回复
高手 高手 求教
Icedmilk 2011-05-29
  • 打赏
  • 举报
回复
我不是说了嘛,启动一个线程做这事
[Quote=引用 7 楼 youwen1988 的回复:]
引用 5 楼 icedmilk 的回复:
启动一个新线程来做

int time = (hour * 3600 + minu * 60 + second) * 1000;
Thread.Sleep(time);


用这种方法会导致系统窗体在一段时间内不响应,可是我有把下载的文件信息记录在窗体有显示,如果用thread的话,那就只能等运行完才能看到窗体响应。能有不影响窗体的方法吗?因……
[/Quote]
ShanShanYouWen 2011-05-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wjq726 的回复:]
还是描述的不太清楚
[/Quote]

简单的说就是一个定时下载文件的系统。设置定时的时间是根据数据库中设置的时间间隔来设置。文件是不定时更新的,系统需要不断的检查是否有文件更新
ShanShanYouWen 2011-05-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 icedmilk 的回复:]
启动一个新线程来做

int time = (hour * 3600 + minu * 60 + second) * 1000;
Thread.Sleep(time);
[/Quote]

用这种方法会导致系统窗体在一段时间内不响应,可是我有把下载的文件信息记录在窗体有显示,如果用thread的话,那就只能等运行完才能看到窗体响应。能有不影响窗体的方法吗?因为有时候可能要及时更改下载文件的状态
麒皑鹭 2011-05-29
  • 打赏
  • 举报
回复
还是描述的不太清楚
Icedmilk 2011-05-29
  • 打赏
  • 举报
回复
启动一个新线程来做

int time = (hour * 3600 + minu * 60 + second) * 1000;
Thread.Sleep(time);
ShanShanYouWen 2011-05-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lcl_data 的回复:]
http://topic.csdn.net/t/20050329/00/3889493.html
http://www.cnblogs.com/yank/archive/2007/12/03/981238.html
[/Quote]

因为我执行的方法是要传参数的 能不能给个方法
ShanShanYouWen 2011-05-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zaiduxinling 的回复:]
引用楼主 youwen1988 的回复:
设定的时间是根据存在数据库中的时间来判断


设定时间?
[/Quote]
设定每隔多少时间就执行下载文件
Radio Configuration (电台配置) Radio Wide (电台范围) General (常规) Radio Cloning :选中此项允许电台复制或被复制。两台电台之间通过一条特殊的电缆,完成 CodePlug 的复制。该过程不需要 CPS 。 CPS 也提供复制 Codeplug 的功能,但与此选项无关。 Block Pending CA/PC :选中此项允许无人值守的电台忽略 Call Alert 和 Private Call 呼叫。 Maximum Channels :最大信道数。 Out of range Indicator :用于指示在集群系统中的 “ 事件,可以选择任意的 Emergency (紧急) Silent Alarm :选中此项电台将在紧急模式时工作在隐蔽模式,没有任何声音和显示的反馈。 Keep Alive :选中此项电台在紧急模式下将会保持工作,不管开关的处于何种位置。 Unmute Option : Emergency Channel Selector Lock :选中此项,电台如果在紧急模式工作,将会锁定在紧急信道上。 Channel Delay :选择电台在传输紧急模式数据前等待的时间。 Man Down Pre-Alert :此两项都是关于人员意外跌倒时报警的,没有相关配件时此两项无作用。 Man Down Post-Alert :如上。 Alert Tones (警告音) Alert Tone :选中此项允许电台发出警报音。 V olume Adjust Tone Offset :选中此项将警告音量维持在一个恒定的值。 Power-up Self Test Alert :选中此项电台将在开机发出提 Zero Level Audio Mute :选中此项,如果音量旋钮在制定的值之下,那么电台将关闭警告音。 Minimum :最小音量。 Alert Tone V olume Offset : Mute Tones :选择关闭那些声音。 (指在电台上选择静音功能时。 ) Low Battery LED :在电池电量底且电台在发射时, LED 灯会闪烁以警告。 Low Battery TX Chirp :在电池低电量的情况下,发射后松开 PTT ,电台会蜂鸣提 Low Battery Standby Chirp :关于上述设置,多长时间鸣叫一次。 Output :选中 Compression 或 AGC 才能使用。默认是增益是 0db ,相当于什么都没做。 Total :全部增益控制,默认是 0db 。 (最大 +-12db ) Digital Audio Options (数字声音选项) 这些选项允许数字声音指示器向用户提 该指示器用于区别信号过强或信号过 弱原因引起的声音失真。 Advanced (高级选项) Ultra Narrow Intermediate (超级窄带间隔频率过滤器) :在临近信道没有互相影响时设置为 7.8KHz , 反之设置为 5.76KHz 。 Rotary Light Time :按下预定的 “ 灯光 ” 键时,旋钮灯亮 Auto Rotary Light :自动旋钮灯光。 Rotary Switch Lock :按下预定的 “ 键盘锁定 ” 键时,电台将锁定当前所在的信道。 (无论旋钮怎么转 Factory Overrides :此项除非必要,否则不推荐开启。 Backlight While in V A :电台被放入车载适配器中,保持背光不熄灭。 Evacuation Tone : Cyclic Keying :一种自动协商发射功率的功能,需双方设备支持,仅限欧洲使用。 Rotary Switch Scan Prgm :旋钮开关扫描程序。 External MIC Only :在外接 MIC 的情况下,禁用内置 MIC 和 PTT 。 Advanced II (第二高级选项) Short Keypress Duration for Emergency :短按紧急按钮的时间。 Long Keypress / Emergency Duration

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧