情况是这样的:
   我有一个表A 
   A表的结构如下:
    ID  标识列
    MobileNO 字符串
    BS     int (为0或为1)
  现在A表以最少每秒种100条的速度写入.写入是默认BS列的值为0
 现在要实现
  我用准备用一个程序把A表中BS列为0的数据提取出来,然后再通过一个URL带参数的形式传给其它网站,URL如(http://www.a.com/a.aspx?id=1&mobileno=135000000),然后当其它的网站成功接收这个URL传的数据后,我再把BS列更新为1.  现在问题出来了,其它网站的反映速度不行,每次发数据过去,都要几秒种的时间.想用多线程来操作.但是我以前一直是做WEB程序的,Winfor程序不大会,请各位兄弟,帮忙看看.谢谢.万分感谢.
  

解决方案 »

  1.   

    heyu1000  兄弟,你说的办法也一样的要面临这个问题的.
    先写入到一个临时地方,你同样的要再把这些临时数据提取出来再处理的.
      

  2.   

    A表以最少每秒种100条的速度写入.不是一直这样吧。你用url传给其他网站,是怎么传递,就用http访问这个url,还是把url作为字符串参数,调用webservice之类的传递。int count = 20;
    for(int i=0;i<count;i++){
      Thread t = new Thread()
    }private void btnStart_Click(object sender, EventArgs e)
            {
                int count = 20;
                for (int i = 0; i < count ; i++)
                {
                    Thread t = new Thread(new ThreadStart(test));
                    t.Name = "Thread " + i;
                    t.IsBackground = true;
                    t.Start();
                }
            }private void test()
            {
                while (true)
                {
                    //..你的处理逻辑...
                    Thread.Sleep(200);
                }
            }
      

  3.   

    搂主的web请求使用HttpWebRequest的下面两个方法:
    BeginGetResponse
    EndGetResponse
    就可以异步接受网站回应了,不必自己再建立多线程了不过,楼主每秒100条,量也太大了,呵呵
      

  4.   

    LZ的意思,我看了半天。。才看明白,不知道是不是我脑袋反应慢······LZ的意思大致是使用多线程去访问这发送这些request,并且接受response的返回?其实不用建立太多的线程,大概20-30个就差不多了···我一个几百人同时访问的服务段也就20多个线程。for (int i = 0; i < count ; i++)
    {
        Thread t = new Thread(new ThreadStart(test));
        t.Name = "Thread " + i;
        t.IsBackground = true;
        t.Start();
    }这个是4楼的代码,我先拿来一下表说我不厚道··借用借用。启动线程之后,在test子程中使用mutx来保证数据的线程安全,使用阻塞来让线程运行,不要使用sleep,最好建立和线程数量一致的阻塞,并且每个阻塞最好和每个线程对上号,方便用来启动线程。在线程之外,你的主线程读取A表的内容,当读取到一个的时候,那么你就看看所有的阻塞中哪个可用,那么就释放那个可用的阻塞,让数据在子程中被接受,然后由线程去处理完成。