110,536
社区成员
发帖
与我相关
我的任务
分享
//str1-9 的定义就不贴了
IList<Model.sendMes> messList = new SQLServerDAL.sendMes().GetAllList(" *", null, "id desc");
FULLTUNNELCONTROLLib.FullTunnelServiceControlClass my = new FULLTUNNELCONTROLLib.FullTunnelServiceControlClass();
int successNum = 0;
for (int i = 0; i < messList.Count; i++)
{
str5 = messList[i].mobilephone.ToString(); //手机号码
int ErrorMessage = Convert.ToInt32(my.FullTunnelServiceControl(ref str1, ref str2, ref str3, ref str4, ref str5, ref str6, ref str7, ref str8, ref str9));
if (ErrorMessage.ToString() == "1")
{
successNum = successNum + 1;
}
}
this.txtmessage.Text = "总共 " + messList.Count + " 条短信 " + " 发送成功 " + successNum.ToString() + " 条短信";
MessageBox.Show("发送完毕");
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace DelegateSample
{
/*********************************************************************
* 2009-10-29 guog,老鸟绕道!
* 跨线程控件访问示例:
* 因为.NET2.0以后禁止对控件跨线程访问,
* 所以可以使用委托来实现。
* 这是其中一种方法
*********************************************************************/
/// <summary>
/// 这里声明一个委托供线程调用
/// </summary>
/// <param name="txt"></param>
public delegate void AppendTextHandler(string txt);
public partial class Form1 : Form
{
Thread m_trd = null;
//实例化一个委托对象
AppendTextHandler m_handler = null;
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 窗体Load 事件
/// </summary>
/// <param name="e"></param>
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
//实例化一个委托对象
m_handler = new AppendTextHandler(AppendTextText);
//开启新线程
m_trd = new Thread(new ThreadStart(OtherThreadDoSomething));
m_trd.Start();
}
/// <summary>
/// 关闭窗体时结束创建的线程
/// </summary>
/// <param name="e"></param>
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
if (m_trd != null)
{
m_trd.Abort();
}
}
/// <summary>
/// 线程执行的方法
/// </summary>
private void OtherThreadDoSomething()
{
string _str;
while (Thread.CurrentThread.ThreadState!=ThreadState.Aborted)
{//线程未请求终止就一直执行
_str = System.Guid.NewGuid().ToString();
AppendTextText(_str);
Thread.Sleep(50);//可去掉
}
}
/// <summary>
/// 向当前窗体控件中增加文本
/// </summary>
/// <param name="txt"></param>
private void AppendTextText(string txt)
{
if (this.richTextBox1.InvokeRequired)
{//调用方在另外一个线程中
//在拥有此控件的线程上执行委托指向的方法
this.richTextBox1.Invoke(m_handler, txt);
}
else
{//调用方在当前线程中
this.richTextBox1.AppendText(txt + "\r\n");//增加文本
this.richTextBox1.ScrollToCaret();//滚动到当前目录
}
}
}
}
System.Threading.Thread th = new System.Threading.Thread(delegate(object obj)
{
//str1-9 的定义就不贴了
IList<Model.sendMes> messList = new SQLServerDAL.sendMes().GetAllList(" *", null, "id desc");
FULLTUNNELCONTROLLib.FullTunnelServiceControlClass my = new FULLTUNNELCONTROLLib.FullTunnelServiceControlClass();
int successNum = 0;
for (int i = 0; i < messList.Count; i++)
{
str5 = messList[i].mobilephone.ToString(); //手机号码
int ErrorMessage = Convert.ToInt32(my.FullTunnelServiceControl(ref str1, ref str2, ref str3, ref str4, ref str5, ref str6, ref str7, ref str8, ref str9));
if (ErrorMessage.ToString() == "1")
{
successNum = successNum + 1;
}
}
this.txtmessage.Text = "总共 " + messList.Count + " 条短信 " + " 发送成功 " + successNum.ToString() + " 条短信";
MessageBox.Show("发送完毕");
});
th.Start();