关于线程的超时处理的问题 我现在做一个服务处理程序,从队列里读取数据,每读1000条就更新次数据库。现在有种情况如果从队列里读不到数据了,而数据不满1000条的,就会一直不更新数据库,这样显然是不好的,请问各位有什么解决办法吗,如果用超时的话,想不到怎么做这个超时判断,希望大家给个意见 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 class BasicWaitHandle { static EventWaitHandle wh = new AutoResetEvent (false); static void Main() { new Thread (Waiter).Start(); Thread.Sleep (1000); // 等一会... wh.Set(); // OK ——唤醒它 } static void Waiter() { Console.WriteLine ("Waiting..."); wh.WaitOne(); // 等待通知 Console.WriteLine ("Notified"); }} 读完之后线程会自动关闭的,可以用Thread.IsAlive来判断。如果IsAlive==true,说明数据都读完了。 或者,读完数据之后,raise一个表示处理完成的事件也可以吧。 为什么在Page_Load()方法中不能打开word文档? 安装项目生成的msi无法自动安装 C#中 LinkLabel 怎么获取其连接地址 关于文件下载的问题 关于获取某网站字串符cookie后,其中包含中文,对其进行解码的问题! DataTable删除的行数和修改的行数 关于sqlconnection的问题,请帮忙 DataGrid中用户按住Ctrl多选的行,程序中如何得到这些选定的行? 如何回写无主键的数据表 菜鸟问题:关于升级 C#调用C++ 指针 代理不行!!! log4net如何在代码中得到日志文件中的所有内容?
static EventWaitHandle wh = new AutoResetEvent (false);
static void Main() {
new Thread (Waiter).Start();
Thread.Sleep (1000); // 等一会...
wh.Set(); // OK ——唤醒它
}
static void Waiter() {
Console.WriteLine ("Waiting...");
wh.WaitOne(); // 等待通知
Console.WriteLine ("Notified");
}
}
如果IsAlive==true,说明数据都读完了。