情况是这样的:
我有一个表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程序不大会,请各位兄弟,帮忙看看.谢谢.万分感谢.
我有一个表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程序不大会,请各位兄弟,帮忙看看.谢谢.万分感谢.
先写入到一个临时地方,你同样的要再把这些临时数据提取出来再处理的.
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);
}
}
BeginGetResponse
EndGetResponse
就可以异步接受网站回应了,不必自己再建立多线程了不过,楼主每秒100条,量也太大了,呵呵
{
Thread t = new Thread(new ThreadStart(test));
t.Name = "Thread " + i;
t.IsBackground = true;
t.Start();
}这个是4楼的代码,我先拿来一下表说我不厚道··借用借用。启动线程之后,在test子程中使用mutx来保证数据的线程安全,使用阻塞来让线程运行,不要使用sleep,最好建立和线程数量一致的阻塞,并且每个阻塞最好和每个线程对上号,方便用来启动线程。在线程之外,你的主线程读取A表的内容,当读取到一个的时候,那么你就看看所有的阻塞中哪个可用,那么就释放那个可用的阻塞,让数据在子程中被接受,然后由线程去处理完成。