项目中有个需求 自动发送短信功能,因为 数据可能比较多 就考虑用多线程来完成。具体需求 此处分了两个步骤 ,在后后 发送的时候保存 模板和根据条件筛选出来的用户。
第二步,自动发送短信服务,该服务是控制台程序, 一直运行,检测到数据库有为发送的模板时候 根据模板id 查询出相应要发送的手机号,调取发送短信方法实现发送
trd = new Thread(SendMessageByGroup); if (mutex.WaitOne(0,false)) { while (trd.ThreadState == ThreadState.Unstarted || trd.ThreadState == ThreadState.Stopped) { List<int> smslist = new SysSmsRecordBll().GetSmsTask(); //获取发布任务模板 if (smslist != null && smslist.Count > 0) { for (int i = 0; i < smslist.Count; i++) { // 创建指定数量的线程 object gid = smslist[i]; trd = new Thread(new ParameterizedThreadStart(SendMessageByGroup)); trd.Start(gid); } } } }
SendMessageByGroup 方法的具体实现 就很简单了 , 就是简单的 foreach 循环了。