根据实际问题来吧:我在用TC35I发短信的时候要调用一个方法发送,该方法可把一条内容一个一个的发送给N个人,每发一条信息给一个人要5秒左右,在这5秒内不能发给第二条.我想问的是.如果我第一次发一条内容给3个人(要15秒才能正常发完),如果5秒后我又要发第二条内容给3个人,这时候就会导致第一条内容和第二条内容发生冲突.有没有什么好方法让第一条短信先发完然后再发第二条短信.------有点乱,举个例子吧
如过有两个人同时调用这个方法,有没有什么办法使该方法第一个人运行完该方法后第二个人才能使用
sendingSms(List<string> number,string value)
{
foreach (string value in number)
  {
  }
}

解决方案 »

  1.   

    sendingSms(List<string> number,string value)
    {
    foreach (string value in number)
    {
    }
    }
    不会吧 这个难道是异步的?
    试试Sleep()
      

  2.   

    这种应该是有个方法可以返回是否发送成功的信息.
    可以用timer控制控制时间,然后发送前在检查下返回的信息,返回发送成功后再发送
      

  3.   

    用一个队列,每次要发短信,就把要发的短信内容和发送的号码放到队列里,然后写一个windows service,不停的去读队列里的东西,然后发送。
    这样你在T实践发送了一个短信给三个人,T+5秒又发了一个短信给3个人,而在windows service程序中,在T秒发现队列中有一个短信,取出来,发送给三个人,这个时候时间是T+15秒;然后又检查队列发现又有一个短信,于是在发送,发送完的时间是T+30秒。
    这样就能解决你的问题了
      

  4.   

    Nick_Nick(统统..都给..我..密码),说得很有道理
      

  5.   

    用一个队列,每次要发短信,就把要发的短信内容和发送的号码放到队列里,然后写一个windows service,不停的去读队列里的东西,然后发送。
    这样你在T实践发送了一个短信给三个人,T+5秒又发了一个短信给3个人,而在windows service程序中,在T秒发现队列中有一个短信,取出来,发送给三个人,这个时候时间是T+15秒;然后又检查队列发现又有一个短信,于是在发送,发送完的时间是T+30秒。
    这样就能解决你的问题了
      

  6.   

    我做的时候处理办法跟zhangci226(三只熊熊)说得一样,可以借鉴。
      

  7.   

    当调用sendingSms的时候,把这次用的时间,保存起来当再次调用的时候,判断一下